• AOV-网
  • AOV-网的特性
  • 拓扑序列
  • 拓扑排序的基本思想
  • 拓扑排序算法
AOV-网:

用顶点表示活动,用弧表示活动间的优先关系的有向无环图,称为顶点表示活动的图,简称为AOV-图。

AOV-网的特性:

1、先行关系具有可传递性
2、拓扑序列不是唯一的

拓扑序列:

在有向图G=(V,{E})中,V中顶点的线性序列称为拓扑序列。此序列必须满足:对序列中任意两个顶点Vi、Vj,在G中有一条从Vi到Vj的路径,则在序列中Vi必须排在Vj之前。

拓扑排序的基本思想:

1、从有向图中选一个无前驱的顶点输出
2、将此顶点和以它为起点的弧删除
3、重复1、2,直到不存在无前驱的顶点
4、若此时输出的顶点数小于有向图中顶点数,则说明有向图中存在回路,否则输出的顶点的序列即为一个拓扑序列。

拓扑序列算法:

1、基于邻接矩阵表示的存储结构:
A为有向图G的邻接矩阵,则有:
- 找G中无前驱的顶点——在A中找到值全为0的列
- 删除以 i 为起点的所有弧——将矩阵中i对应的行全部置为0
算法步骤:
(1)取1作为第一序号;
(2)找到一个未新编号的、值全为0的列 j,若找到则转(3);否则,若所有的列全部都编过号,拓扑排序结束;若所有的列未曾被编号,则该图中有回路;
(3)输出列号对应的顶点 j,新序号赋给所找到的列;
(4)将矩阵中 j 对应行全部置为0;
(5)新序号加1,转(2)
2、基于邻接表的存储结构:
入度为0的顶点即无前驱的顶点,因此我们可以附设一个存放各顶点入度的数组indegree[ ],于是有:
-找G中无前驱的顶点——查找indegree[i]为0的顶点Vi;
-删除以 i 为起点的所有弧——对链在顶点 i 后面的所有邻接顶点 k ,将对应的indegree[k]减1
(为了避免重复检测入度为0的顶点,