背景
拓扑排序的作用主要是计算依赖
如一项大的工程常被分为多个小的子工程,子工程之间可能存在一定的先后顺序,即某些子工程必须在其他的一些子工程完成后才能开始
AOV(Activity On Vertex Network)
在现代化管理中,人们常用有向图来描述和分析一项工程的计划和实施过程,子工程被称为活动(Activity)
以顶点表示活动、有向边表示活动之间的先后关系,这样的图简称为 AOV 网
标准的AOV网必须是一个有向无环图(Directed Acyclic Graph,简称 DAG)
![](https://img.haomeiwen.com/i15854876/3be4f0aa53434df2.png)
前驱活动:有向边起点的活动称为终点的前驱活动
只有当一个活动的前驱全部都完成后,这个活动才能进行
后继活动:有向边终点的活动称为起点的后继活动
拓扑排序
将 AOV 网中所有活动排成一个序列,使得每个活动的前驱活动都排在该活动的前面
比如上图的拓扑排序结果是:A、B、C、D、E、F 或者 A、B、D、C、E、F (结果并不一定是唯一的)
拓扑排序的实现思路
![](https://img.haomeiwen.com/i15854876/17cb16ebd2abef42.png)
![](https://img.haomeiwen.com/i15854876/31d72c560d8789c0.png)
![](https://img.haomeiwen.com/i15854876/8636a984ae534f85.png)
网友评论