我有一种方法可以在有向图中找到周期。
给定有向图G =(V,E),假设G中存在一个顶点w,使得存在从w到图中所有其他顶点的路径。请考虑以下方法在图中查找循环。使用顶点w作为源在G上运行BFS。如果我们遇到另一个顶点两次,我们声称我们已经找到了一个循环。如果我们只遇到每个顶点一次,我们声称G中没有循环。
问题是:如果我使用这种方法,我会得到正确的答案吗?
答案 0 :(得分:0)
这并不总是有效。考虑这个简单的图表:
A -> B
\ |
\ v
> C
这里有一条从A到图中每个节点的路径。但是,在BFS期间,您将发现节点C两次 - 一次来自A,一次来自B并且将错误地报告存在循环。
希望这有帮助!