L'algorithme de parcours en largeur commence à un nœud quelconque d’un graphe, parfois appelé "clé de recherche", et explore tous les nœuds voisins de même profondeur avant de passer aux nœuds situés au prochain niveau de profondeur. On pourrait le comparer à une "onde".
|
Si nous changeons le mode de gestion de la liste de FIFO à LIFO, alors nous transformons notre algorithme de parcours en largeur en algorithme de parcours en profondeur. (sans récursivité)
|
Si on doit vérifier qu'une connexion existe entre deux nœuds, alors l'algorithme de parcours en profondeur sera, en moyenne, plus performant. En revanche, si nous recherchons le plus court chemin, et si les nœuds sont équidistants alors l'algorithme de parcours en largeur sera meilleur. En effet, avec l'algorithme de parcours en profondeur, lorsque l'on tombe sur l'élément recherché, il peut exister un autre chemin plus court. Ce qui implique que l'ensemble des nœuds de l'arbre doit être parcouru.
L'algorithme de Dijkstra est une généralisation du parcours en largeur prenant en compte une pondération entre les nœuds (distance par exemple).