目录
一、拓扑排序(AOV)
1. AOV的概念: 在一个表示工程的有向图中,用顶点表示活动,用弧表示活动之间的优先关系,称这样的有向图为顶点表示活动的网,简称AOV网
2.拓扑排序:按照有向图给出的次序关系,将图中的顶点排成一个线性序列,对于有向图中没有限定次序关系的顶点,则可以人为加上任意的次序关系,由此所得顶点的线性序列称为拓扑有序序列。
————拓扑序列使得AOV网中所有应存在的前驱和后继关系都能得到满足。
3.基本思路:
- 从AOV网中选择一个没有前驱的顶点并且输出;//入度in不为零
- 从AOV网中删去该顶点,并且删去所有以该顶点为尾的弧;
- 重复上述两步,直到全部顶点都被输出,或AOV网中不存在没有前驱的顶点。
*AOV网络中不能有回路,如果有回路输出的拓扑序列不包含所有的点(活动)。
AOV-网的拓扑序列不是唯一的
4.代码:
- 准备:修改邻接表的的顶点表的数据,增加一个入度(in)。
- 栈S:存储所有无前驱的顶点(入度为零的顶点)。