拓扑排序针对的是一种有向无环图,无环的有向图简称DAG图
有向无环图通常用来描述一个工程或系统的进行过程.
一个工程可以分为若干个子工程,只要完成了这些子工程,就可以导致整个工程的完成.
用一个有向图表示一个工程的各子工程及其相互制约关系,其中以顶点表示活动,弧表示活动之间的优先制约关系,称这种有向图为顶点表示活动的网,简称AOV网
用一个有向图表示一个工程的各子工程及其相互制约关系,以弧表示活动,以顶点表示活动的开始或结束事件,称这种有向图为边表示活动的网,简称AOE网
这里我们先解决拓扑排序的问题,先用到AOV网
这样就出现了一个难题:如何判别AOV网中是否存在回路?
在AOV网中没有回路的前提下,我们将全部活动排列成一个线性序列,使得若AOV网中有弧存在,则在这个序列中,i一定排在j的前面,具有这种性质的线性序列称为拓扑有序序列,相应的拓扑有序排序的算法称为拓扑排序
故一个AOV网的拓扑排序不是唯一的
对有向图构造其顶点的拓扑有序序列,若网中所有顶点都在它的拓扑有序序列中,则该AOV网必定不存在环