or download this
has_a_cycle
...
Returns a cycle if the graph has one (as a list of vertices), an e
+mpty list if no cycle can be found.
Note that this just returns the vertices of a cycle: not any parti
+cular cycle, just the first one it finds. A repeated call might find
+the same cycle, or it might find a different one, and you cannot call
+ this repeatedly to find all the cycles.