1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
Pour tout sommet i
marque[i] <- faux;dansPile[i] <- faux
Fin pour
Tant qu'il existe un sommet s non marqué
empiler s
marque[s] <- vrai; num[s] <- 1; dansPile[s] <- vrai
Répéter
x <- sommet de la pile
chercher y, premier succ de x à partir de num[x], tel que dansPile[y]=Vrai
Si y existe, alors il existe un cycle (y,...,x,y)
Sinon
chercher y, premier succ de x tel que non marque[y], à partir de num[x]
Si y existe alors
marque[y] <- vrai
empiler y ; dansPile[y] <- vrai
num[y]<-1 ; num[x] <- y+1
Sinon
dépiler x ; dansPile[x] <- faux
FinSi
Fin Si
Jusqu'à ce que la pile soit vide
Fin Tant Que |