Trouver tous les cycles dans le graphe, redux

Je sais qu'il y a assez peu de réponses existantes sur cette question. Cependant, je l'ai trouvé aucun d'entre eux vraiment mettre au point.
Certains prétendent qu'un cycle est (presque) la même chose qu'un fortement les composants raccordés (s). Trouver tous les cycles dans un graphe orienté) , donc on peut utiliser des algorithmes conçus pour cet objectif.
Certains font valoir que la conclusion de un cycle peut être fait par DFS et de contrôle pour le dos-bords (s). boost graph de la documentation sur les dépendances des fichiers).

Maintenant, je voudrais avoir quelques suggestions que tous cycles dans un graphe peuvent être détectés par DFS et de contrôle pour le dos-bords?
http://www.me.utexas.edu/~bard/IP/Documents/cycles.pdf (trouvé ici sur S. O.) - une autre methode basée sur le cycle de bases. Moi, personnellement, je ne trouve pas ça très intuitif donc je suis à la recherche d'une solution différente.

EDIT: Mon avis initial a été apparemment mal. S. ensuite répondre par "Idiot".

Initiale avis:
Mon avis est qu'il pouvait, en fait, travailler de cette façon que DFS-VISITE. pseudo-code de DFS) fraîchement entre chaque nœud qui n'a pas encore visité. En ce sens, chaque sommet présente un potentiel de début de cycle. En outre, comme DFS visites chaque bord une fois, chaque bord vers le point de départ d'un cycle est également couvert. Ainsi, à l'aide de DFS et le dos-bord de la vérification, il devrait en effet être possible de détecter tous cycles dans un graphe. Notez que, si les cycles avec différents nombres de participant nœuds existent (par exemple des triangles, des rectangles, etc.), le travail supplémentaire doit être fait pour discriminer les acutal "forme" de chaque cycle.

OriginalL'auteur Shadow | 2010-05-15