此算法是否正确检测有向图中的周期?

时间:2014-05-14 20:54:00

标签: algorithm graph

我有一种方法可以在有向图中找到周期。

给定有向图G =(V,E),假设G中存在一个顶点w,使得存在从w到图中所有其他顶点的路径。请考虑以下方法在图中查找循环。使用顶点w作为源在G上运行BFS。如果我们遇到另一个顶点两次,我们声称我们已经找到了一个循环。如果我们只遇到每个顶点一次,我们声称G中没有循环。

问题是:如果我使用这种方法,我会得到正确的答案吗?

1 个答案:

答案 0 :(得分:0)

这并不总是有效。考虑这个简单的图表:

 A -> B
  \   |
   \  v
    > C

这里有一条从A到图中每个节点的路径。但是,在BFS期间,您将发现节点C两次 - 一次来自A,一次来自B并且将错误地报告存在循环。

希望这有帮助!