我试图为算法编写伪代码,该算法假设检查有向图是否只有一个拓扑排序。我已经提出了拓扑排序的伪代码(使用DFS),但它似乎对我没什么帮助。我想知道那个图中是否没有接收器 - 然后没有一个拓扑排序(可能有帮助吗?)。
答案 0 :(得分:0)
这是对this answer的改进,因为当它在没有传出边的顶点处开始时,最好的运行时会得到改善。
如果您的有向图有N
个顶点,并且您只有一个具有indegree 0的起始顶点,
L
。L
没有N
个顶点,则某些顶点无法访问(这些顶点是循环的一部分),或者您需要另一个起始顶点(因此有多个顶点)。i
中的[0,N-2]
,
L[i]
到L[i+1]
没有边缘,
或者,修改Kahn的算法:如果算法运行时集合中的多个顶点(indegree 0的顶点),则返回false。否则,返回true。