我一直在试图实现一个算法来检测周期(可能有多少)在directed and undirected graph
。这是代码应该适用于有向图和无向图。单一算法在定向和非定向图上工作以检测周期?
使用DFS or topological sort
主要推荐在各种职位。但很大程度上,所有内容都是针对无向图。
This link描述了一种用于循环检测的方法。据我了解,这适用于有向图。
This link在无向图中具有循环检测的代码。但我不明白它是如何忽略后端的。那就是它必须忽略任何有两个节点的循环,比如D到C和C到D. 这意味着它必须在DFS递归时记住它。但代码似乎没有考虑到这一点。
任何建议,欢迎..
您的第二个链接是关于检测** Connected Component **,而不是关于周期。 – justhalf
不是连接组件基本上是一个循环? –
一个循环是k个顶点的子图,其中有'k'个边将'k'个顶点连接成一个循环。连通分量是连接的k个顶点的诱导子图。在你的图例中,只有一个连通分量(整个图),并且有三个循环:'A-B-E-A','A-B-D-A','A-E-B-D-A'。 – justhalf