【问题标题】:Verify if an undirected graph has cycles [closed]验证无向图是否有循环[关闭]
【发布时间】:2015-07-01 20:12:15
【问题描述】:

我知道这个问题已经被问过好几次了。但是我还不能理解,这些问题太老了,无法回答......

我读到了Kahn's Algorithm
还有关于DFS
加号Tarjan's strongly connected components algorithm
但我只是无法理解使其工作的过程。
到目前为止,我所做的只是初始化并提供图表。
并找到从顶点 A 到 B 的最短路径。

【问题讨论】:

    标签: c graph cycle


    【解决方案1】:

    稍加修改的简单 DFS 即可。

    提示:我们对给定的图进行 DFS 遍历。对于每一个访问过的顶点‘v’,如果有一个相邻的‘u’使得u已经被访问过并且u不是v的父节点,那么图中就有一个循环。

    另请注意:无向图中的循环检测遵循与有向图完全不同的算法。有向图中的循环是不同的。

    (希望您对 DFS 感到满意)。

    【讨论】:

    • 其实没有。你能给我一个简短的帮助吗?我正在阅读我能找到的所有内容,但也许只是主要思想。我是自己研究的,所以对我来说并不容易。
    • 您对图表中的 DFS 感到满意吗?
    • 不幸的是,我对 DFS 还不是很满意.. 找不到任何人帮我解决这个问题。这就是为什么我决定在这里问。你能给我一些帮助吗,也许只是基本的。就像,我必须使用堆栈/队列吗?我使用矩阵吗?谢谢
    • 不,只是一个递归调用。为什么不看书或搜索谷歌?您还可以在 youtube 上观看教程视频以进一步了解。我经常这样做。
    • +1 我已经在做。如果我不使用这些。如何将顶点标记为其他顶点的父级?如何将其标记为已访问?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多