拓扑排序
在图论中,拓扑排序是一个有向无环图的所有顶点的线性序列。且该序列必须满足下面两个条件:
1.每个顶点出现且只出现一次
2.若存在一条从顶点A到顶点B的路径,那么在序列中顶点A出现在顶点B的前面
有向无环图(DAG)才有拓扑排序,非DAG图没有拓扑排序一说
如何判断有向图有环
1.从DAG图中选择一个没有前驱(即入度为0)的顶点并输出。
2.从图中删除该顶点和所有以它为起点的有向边。
3.重复1和2直到当前的DAG图为空或当前图中不存在无前驱的顶点为止。后一种情况说明有向图中必然存在环。
得到拓扑排序后的结果是 {1, 2, 4, 3, 5},最后得到的DAG图为空,说明该图无环
参考文章
参考文章1