Lorsque le graphe ne presente pas de circuit, il faut determiner une numerotation des sommets allant de 1 a n qui constitue un ordre topologique (le sommet de depart i0 ayant le numero 1) et marquer les sommets dans cet ordre. 5.4. Determination de plus courts chemins d'origine longueurs quelconques
Rappelons qu'un sommet x relie par un chemin a tous les autres sommets d'un graphe est appele racine. Voici l'algorithme en pseudo-langage de cette exploration par un parcours en profondeur d'abord : DFSx0(G, x0) permet d'explorer tous les sommets de G s'il est possible de les atteindre a partir de x0.
Pour continuer l'exploration et couvrir tous les sommets de G, on choisit un sommet x1 parmi les sommets non explores (tels que num(x1) = 0) et on applique DFS a partir de x1 ; et ainsi de suite tant qu'il existe des sommets non explores. L'algorithme prend n lorsque tous les sommets ont ete explores.
On aboutit donc a une contradiction. Complexite : A chaque iteration, on selectionne le sommet j de plus petite marque en O(n) operations dans le pire cas, et on remet a jour les marques des successeurs de j en O(d+(j)) operations. En tout, il y a n iterations pour marquer tous les sommets du graphe.