Qu'est qu'un cycle ?
Un cycle est tout simplement une boucle dans un graphe, c'est utile pour savoir s'il est possible d'effectuer un parcours qui revient à son point de départ sans être obligé de faire demi-tour.
L'algorithme ci dessous permet de “détecter” la présence d'au moins un cycle dans un graphe.
VARIABLE s : noeud (noeud quelconque) G : un graphe u : noeud v : noeud p : pile (vide au départ) //On part du principe que pour tout sommet u du graphe G, u.couleur = blanc à l'origine DEBUT CYCLE(): piler(s,p) tant que p n'est pas vide : u ← depiler(p) pour chaque sommet v adjacent au sommet u : si v.couleur n'est pas noir : piler(v,p) fin si fin pour si u est noir : renvoie Vrai sinon : u.couleur ← noir fin si fin tant que renvoie Faux FIN