问题:将问题 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 中图的一组顶点划分为强连通分量(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
您可以将 5 和 6 添加到 1、7、2、4、3,因为其他人都可以通过 4 访问它们
在 DFS 中,您必须在堆栈不为空的情况下继续访问节点并创建树,如果是这样,则使用仍然为白色的最低 id 的 restsrt
强连通分量是 {1,2,3,4,5,6,7}。如果你不明白,你的算法(或你的实现)有一个错误。有强连通分量的定义,以及几种著名的算法;两者都可以在维基百科(和许多其他互联网资源)中轻松找到,并且很可能在您的教科书和/或课程笔记中找到。(如果你没有课程笔记,你很容易找到一些类似课程的。)