【发布时间】:2012-07-03 04:13:08
【问题描述】:
我是图论的新手,到目前为止我只学习了图论中的 BFS 和不相交集。如果给定的无向连通图中存在一个循环,我可以使用 BFS 找到它吗 ?我的意图是打印循环中的所有顶点。提前致谢。
【问题讨论】:
-
是的 stackoverflow.com/questions/4464336/… ,它不是圆圈,它在图中称为循环:P
-
对不起,我的意思是循环。我已经更正了。
-
你的意思是有向图吗?如果图是无向的,那么连接两个节点的任何链接都会形成一个循环。例如。如果你有 A - B,那么 A - B - A 就是一个循环。
-
@AlexWilson 不,我的意思是无向图。你能澄清一下吗?我和这个名叫 PROGRAMMER 的人有同样的问题。考虑 2----1。如果我从 1 开始 BFS,我将首先将其标记为已访问并将其添加到队列中。然后,在 while 循环中,我将从队列中检索它并将任何相邻的未访问顶点标记为已访问并将它们添加到队列中。换句话说,我会将 2 添加到队列中。现在,当我从队列中检索 2 时,我将再次考虑它的所有相邻顶点。在这样做时,我还将考虑已经访问过的 1。但是,这并不表示循环。
标签: c++ c graph breadth-first-search disjoint-sets