在一个有向图
中,对所有的节点进行排序,要求没有一个节点指向它前面的节点。
先统计所有节点的入度
,对于入度为0的节点就可以分离出来,然后把这个节点指向的节点的入度减一
。一直做改操作,直到所有的节点都被分离出来。
有环的有向图不存在拓扑结构,也就是很多题目的无解的情况。拓扑排序可以判断图是否有环
。
下面是算法的演示过程:
一个AOV网应该是一个有向无环图
,即不应该带有回路,因为若带有回路,则回路上的所有活动都无法进行(对于数据流来说就是死循环)。在AOV网中,若不存在回路,则所有活动可排列成一个线性序列,使得每个活动
的所有前驱活动
都排在
该活动的前面
,我们把此序列叫做拓扑序列
(Topological order),由AOV网构造拓扑序列的过程
叫做拓扑排序
(Topological sort)。AOV网的拓扑序列不是唯一
的,满足上述定义的任一线性序列都称作它的拓扑序列。
参考
https://blog.csdn.net/qq_41713256/article/details/80805338
https://blog.csdn.net/qq_35644234/article/details/60578189