@Furchtbichler - sofern ich mich grad nicht vertue, dürfte der Code nen kleinen Fehler enthalten (obwohls ja nur Pseudocode ist..) - und zwar merkst du nicht wirklich, welche Knoten bereits besucht sind (bzw. du überprüfst nicht, ob der Knoten bereits besucht wurde), somit kann der Fall auftreten, dass Cycle nie aufhört -> z.B. hier:
A->B->C->D->B
Eigentlich nicht, denn B wurde bereits im ersten Abstieg besucht und damit als Visited bezeichnet. Zyklen werden nicht auftreten, aber ein und der selbe Zyklus mehrfach ausgegeben, da die Graphen nicht gerichtet sind, also z.B. A->B->C->A und A->-C->B->A (bei einem Dreieck). Genaugenommen sind es ja zwei Wege, sozusagen linksrum und rechtsrum.