算法课件--第7章(图).ppt

  1. 1、本文档共80页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法课件--第7章(图)

(1)查找邻接表中入度为0的顶点,并进栈。 (2)当栈非空时,进行拓扑排序: 1)输出栈顶的顶点Vj并退栈; 2)在邻接表中查找Vj的直接后继Vk(k=1,2,…),将Vk的 入度减1,并将入度减至0的顶点进栈。 (3)若栈空时输出的顶点数不足AOV-网中顶点数n,则说明有向图中存在有向环,否则拓扑排序完毕。 另外,由于当一个顶点的入度为0时,该顶点的数据域也就没有用处了,可以借用入度为0的点的数据域来存放带链的栈指针(下一个入度为0的顶点的序号),而不必为栈另开辟存储单元。这一技巧只适用于在表头结点向量中,表头结点的序号与顶点一致的情况下。 五.拓扑排序的算法   for(i=1;i=n;i++) //查入度为零的顶点,并建立链栈 if (g[i].in==0) {g[i].in=top;top=i;} m=0; //设m为计数器计算输出的顶点个数 while(top!=0) { j=top;top=g[top].in; //退栈 printf(“v%d”,j); m++; //输出顶点并计数 q=g[j].link; //q是指针,指示以j为尾的弧 算法如下: void toposort(AdjList g) //假设G为有n个顶点,e条弧的有向图,g是它的邻接表的表头向量,每个分量有两个域vex,next,对入度为0的顶点设计带链的栈,top指示栈顶元素,in为入度 { readlist(); //输入e条弧并建立邻接表 top=0; while (q!=NULL) { k=q-vex; //顶点k为j的直接后继 g[k].in= g[k].in-1; //入度减1 if (g[k].in==0) {g[k].in=top; top=k; //入度为零的顶点进栈} q=q-next; } } if (mn) printf(“the network have cycle”); //输出顶点数不足n,说明网中有环 } 算法分析: 假设有向图有n个顶点,e条边,那么建立邻接表的执行时间为O(e);搜索入度为0的时间为O(n);在拓扑排序过程中,若有向图无环,则每个顶点进一次栈,入度减1的运算在WHILE top≠0的语句中共执行e次,所以总的执行时间为O(n+e)。 当有向图中无环时,也可利用深度优先搜索进行拓扑排序,因为图中无环,则由图中某点出发进行深度优先搜索遍历时,最先退出dfs过程的顶点,即出度为0的顶点,是拓扑有序序列中最后一个顶点。由此, 按退出dfs(深度)过程的先后记录下来的顶点序列,即为逆向的拓扑有序序列。 North China Electric Power University ★§7.7 AOE网与关键路径 筹备 付款 签合同 做预 置件 验收 施工 … 招标 7天 联系材料 8天 图纸设计 15天 进驻工地 4天 运材料 6天 搬 运 3 天 例 North China Electric Power University 一.AOE网的定义 AOE网为一个带权的有向无环图,其中,顶点表示事 件,有向边表示活动,边上的权值表示活动持续的时间。 v1 v4 v2 v3 v5 v7 v9 v8 v6 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 6 4 5 1 1 2 9 7 2 4 4 正常情况下,AOE网中只有一个入度为0 的顶点,称 之为源点;有一个出度为0 的顶点,称之为终点。 North China Electric Power University 1.只有在某个顶点所代表的事件发生以后,该顶点引发的 活动才能开始。 2.进入某事件的所有边所代表的活动都已完成,该顶点所 代表的事件才能发生。 AOE网的特点: 1. 关键路径的定义 从源点到终点的路径中具有最大路径长度的路径为 关键路径; 关键路径上的活动称为关键活动。 二.AOE网的存储方法 三.关键路径 采用邻接矩阵存储方法。 North China Electric Power University 2. 关键路径的特点 1) 关键路径的长度(路径上的边的权值之和)为完成整 个工程所需要的最短时间。 2) 关键路径的长度变化(即任意关键活动的权值变化) 将影响整

文档评论(0)

ranfand + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档