Le parcours en largeur

Le parcours en largeur consiste à parcourir les noeuds du graphe en commençant toujours par les plus proches du point de départ.

Pour cela, on utilise un file, dans laquelle on met des arêtes à visiter. Ces arêtes sont des couples de noeuds, (d,a) tels que d et a soient voisins, d a déjà été entièrement traité et pas a. Au départ, cette file ne contient que le noeud de départ ((d,d)). L'algorithme est alors le suivant : on enlève la première arête (d,a) de la file. Si a est le point d'arrivée, on a fini. Sinon, on ajoute en queue de file toutes les arêtes (a,b) telles que b soit un voisin de a non visité et on note que tous les b seront visités.

En fait cet algorithme calcule tous les plus courts chemins à partir du noeud de départ. Pour les utiliser, il faut les mémoriser. La structure de ces chemins forme un arbre (la racine en est le noeud de départ), mais il est souvent plus utile de le représenter de bas en haut plutôt que de la racine vers les feuilles : en effet, si la représentation part des feuilles, on pourra facilement construire le plus court chemin qui va d'une feuille donnée (par exemple le noeud d'arrivée) vers la racine. À chaque fois qu'on retire une arête (d,a) de la file, on peut mettre dans l'arbre que le père de a est d.