I have been trying to implement an algorithm to detect cycles (probably how many of them) in a directed and undirected graph
. That is the code should apply for both directed and undirected graphs.
Using DFS or topological sort
is mostly recommended in various posts. But largely, everything is addressed for undirected graph.
This link describes one approach for cycle detection. To my understanding this works for directed graphs.
This link has the code for cycle detection in undirected graphs. but I fail to understand how it ignores the back edge. That is it must ignore any cycles with two nodes, say D to C and C to D. which means it must remember it parent as the DFS recurses. But the code does not seem take care of that.
Any suggestions welcome..