DFS 强连通分量困境

DFS strongly connected components dilemma

问题:将问题1中图的顶点集划分为强连通分量 (SCC)。即指定哪些顶点在第一个强连通分量中, 在第二个,依此类推。

是否有人能够确认我是否正确地完成了这项工作?也就是说,当我到达顶点 4 时,我可以选择将第一个 SCC 设置为 1、7、2、4、3(如图所示)或 1、7、2、4、6、5,具体取决于我选择的旅行方式。有什么方法可以解决这个问题,还是我可以直接选择?

订单:

1,2,7,3,4,5,8,6

SCC:

1,7,2,4,3

5

8

6

强连通分量是{1,2,3,4,5,6,7}。如果你不明白,你的算法(或你的实现)有一个错误。有Strongly Connected Component的定义,和几个著名的算法;两者都可以在维基百科(以及许多其他互联网资源)中轻松找到,而且很可能在您的教科书 and/or 课程笔记中找到。 (如果您没有课程笔记,您可以轻松找到类似课程的笔记。)

您可以将 5 和 6 添加到 1,7,2,4,3,因为其他人都可以通过 4 访问它们

在 DFS 中 您必须在堆栈不为空时继续访问节点并创建树 如果是这样,则 restsrt 具有最低的 id,它仍然是白色的