【问题标题】:Does this algorithm correctly detect cycles in a directed graph?该算法是否正确检测有向图中的循环?
【发布时间】:2014-05-14 20:53:59
【问题描述】:

我有一种方法可以在有向图中找到循环。

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

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

【问题讨论】:

    标签: algorithm graph


    【解决方案1】:

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

     A -> B
      \   |
       \  v
        > C
    

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

    希望这会有所帮助!

    【讨论】:

    • 所以如果它是一个无向图,它会工作,对吧?
    猜你喜欢
    • 1970-01-01
    • 2013-05-29
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    相关资源
    最近更新 更多