我很难理解Tarjan的发音点算法。我现在在这里学习本教程:https://www.hackerearth.com/practice/algorithms/graphs/articulation-points-and-bridges/tutorial/。在任何其他教程中,我真正看不到,也看不到的是,“后边缘”到底是什么意思。考虑到给出的图,我知道3-1和4-2是后边,但是2-1,3-2和4-3后边也是吗?谢谢。
发布于 2017-06-12 08:26:55
...a Back Edge是连接顶点和在其父节点之前发现的顶点的边缘。
从你的来源。
可以这样想:当您在图上应用DFS时,您会修复算法所选择的一些路径。现在,在给定的情况下:0->1->2->3->4
。正如本文所提到的,源图包含边4-2
和3-1
。当DFS达到3时,它可以选择1,但1已经在您的路径中,因此它是一个back edge
,因此,正如源中所提到的,它是一个可能的替代路径。
回答你的第二个问题: 2-1,3-2和4-3背边也是吗?换一条不同的路。假设您的DFS选择0->1->3->2->4
,那么2-1
和4-3
是后边。
发布于 2017-06-12 08:34:07
本质上,当您执行DFS时,如果图中有节点A、B和C之间的循环,并且发现了边A-B,那么稍后您就会发现边缘B-C,然后,由于您已经到达节点C,您将发现边缘C-A,但是在搜索过程中您需要忽略这条路径,以避免无限循环。所以,在你的搜索中,and和back不是后边,但是C是后边,因为这个边形成一个循环返回到一个已经访问过的节点。
发布于 2020-10-10 21:02:41
考虑使用DFS进行以下(有向)图遍历。在这里,节点的颜色表示以下内容:
注意,当节点13通过边缘13->0发现节点0时,节点0仍然在堆栈上。这里,13->0是一个后边,它表示一个循环的存在(三角形0->1->13)。
https://stackoverflow.com/questions/44494426
复制相似问题