标签:ret col sort 排序 工程 自己 more 开始时间 return
title: 数据结构 | 图-5 | 拓扑排序
date: 2019-11-27 17:14:58
拓扑排序、关键路径
用顶点表示活动,用弧表示活动间优先关系的有向图称为顶点表示活动的网(Activity On Vertex network),简称AOV网。
若<vi,vj>是图中有向边,则vi是vj的直接前驱,vj是vi的直接后继;
AOV网中不允许有回路,这意味着某项活动以自己为先决条件;
把AOV网络中各顶点按照它们相互之间的优先关系排列成一个线性序列的过程叫拓扑排序
-拓扑排序应用
检测AOV网中是否存在环:
对有向图构造其顶点的拓扑有序序列,若网中所有顶点都在它的拓扑序列,则该AOV网必定无环
以邻接表作存储结构,
若栈空时输出的顶点个数不是n,则有向图有环;否则,拓扑排序完毕
Status TopologicalSort(ALGraph G) {
for(i = 0;i <G.vexnum; ++ i ) //查找入度为为零的顶点
if(! Indegree[i]) //把入度为零的顶点进栈
push (S,i );
count = 0; //计数器置0
while (! StackEmpty(s)) {
pop(s, i);
printf(i,Gvextices[i].data);
++count;//输出顶点、计数
for(p=G.vextices[i].firstarc; p ; p = p->nextarc) {
k = p->adjvex; //得到与输出顶点相邻接的顶点下标
if(! (--indegree[k]))
push( S,k);
//将邻接点的入度减1,将为零的入栈
}//for
}//while
if (count<G.vexnum)
return ERROR;//该图有回路
else return OK;
}//TopologicalSort
边表示活动的网。AOE网是一个带权的有向无环图,其中顶点表示事件,弧表示活动,权表示活动持续时间
路径上各活动持续时间之和。
路径长度最长的路径叫关键路径。
设活动ai用弧<j,k>表示,
其持续时间记为:dut(<j,k>)
则有:(1)e(i)=Ve(j) //最早开始时间是弧尾事件的最早发生时间
(2)l(i)=Vl(k)-dut(<j,k>)//最迟开始时间是弧头事件的最晚发生时间减去活动的持续时间,即弧的权值
描述
标签:ret col sort 排序 工程 自己 more 开始时间 return
原文地址:https://www.cnblogs.com/nightland/p/13504369.html