- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C数据结构第4章第7节拓扑排序与关键路径(C版)剖析
引入 引入 拓扑排序算法 拓扑排序算法 拓扑排序算法 拓扑排序算法 拓扑排序算法 拓扑排序算法 拓扑排序算法 拓扑排序算法 拓扑排序算法 拓扑排序算法 拓扑排序算法 拓扑排序算法 关键路径 关键路径 关键路径 关键路径 关键路径 关键路径 关键路径 上机练习 上机练习 上机练习 * * * 第七节 拓扑排序与关键路径 AOV网 在日常生活中,一项大的工程可以看作是由若干个子工程(这些子工程称为“活动” )组成的集合,这些子工程(活动)之间必定存在一些先后关系,即某些子工程(活动)必须在其它一些子工程(活动)完成之后才能开始,我们可以用有向图来形象地表示这些子工程(活动)之间的先后关系,子工程(活动)为顶点,子工程(活动)之间的先后关系为有向边,这种有向图称为“顶点活动网络” ,又称“AOV网” 。 1 2 3 5 6 7 8 9 4 在AOV网中,有向边代表子工程(活动)的先后关系,我们把一条有向边起点的活动成为终点活动的前驱活动,同理终点的活动称为起点活动的后继活动。而只有当一个活动全部的前驱全部都完成之后,这个活动才能进行。例如在上图中,只有当工程1完成之后,工程2、3、4、5、6才能开始进行。只有当2、3、4全部完成之后,7才能开始进行。 一个AOV网必定是一个有向无环图,即不应该带有回路。否则,会出现先后关系的自相矛盾。 1 2 3 4 上图就是一个出现环产生自相矛盾的情况。4是1的前驱,想完成1,必须先完成4。3是4的前驱,而2是3的前驱,1又是2的前驱。最后造成想完成1,必须先完成1本身,这显然出现了矛盾。 拓扑排序算法,只适用于AOV网(有向无环图)。 把AOV网中的所有活动排成一个序列, 使得每个活动的所有前驱活动都排在该活动的前面,这个过程称为“拓扑排序”,所得到的活动序列称为“拓扑序列”。 一个AOV网的拓扑序列是不唯一的,例如下面的这张图,它的拓扑序列可以是:ABCDE,也可以是ACBDE,或是ADBCE。在下图所示的AOV网中,工程B和工程C显然可以同时进行,先后无所谓;但工程E却要等工程B、C、D都完成以后才能进行。 A B C E D 构造拓扑序列可以帮助我们合理安排一个工程的进度,由AOV网构造拓扑序列具有很高的实际应用价值。 算法思想: 构造拓扑序列的拓扑排序算法思想很简单: 选择一个入度为0的顶点并输出 然后从AOV网中删除此顶点及以此顶点为起点的所有关联边; 重复上述两步,直到不存在入度为0的顶点为止。 若输出的顶点数小于AOV网中的顶点数,则输出“有回路信息”,否则输出的顶点序列就是一种拓扑序列 从第四步可以看出,拓扑排序可以用来判断一个有向图是否有环。只有有向无环图才存在拓扑序列。 算法实现: a) 数据结构:indgr[i]: 顶点i的入度; stack[ ]: 栈 b) 初始化:top=0 (栈顶指针置零) c) 将初始状态所有入度为0的顶点压栈 d) I=0 (计数器) e) while 栈非空(top0) i. 栈顶的顶点v出栈;top-1; 输出v;i++; ii. for v的每一个后继顶点u 1. indgr[u]--; u的入度减1 2. if (u的入度变为0) 顶点u入栈 f) 算法结束 这个程序采用栈来找出入度为0的点,栈里的顶点,都是入度为0的点。 我们结合上图详细讲解: A B C D 开始时,只有A入度为0,A入栈。 栈:A B C D 栈顶元素A出栈并输出A,A的后继B、C入度减1,相当于删除A的所有关联边 栈:空 拓扑序列:A B C
您可能关注的文档
- 科博世白色超细羊毛吸声绝热毡介绍.ppt
- 科学中考一轮复习人类与动物的生殖与发育.ppt
- 科学五年级上册《探索土地被侵蚀的因素》教学.ppt
- 科学六年级上青岛版5.5珍稀动植物7.ppt
- 科学哲学学科脉络及其前沿.ppt
- BX51使用手册.doc
- bx八1.2下八年级政治下册_我们享有广泛的权利课件.新建MicrosoftPowerPoint演示文稿剖析.ppt
- 科学八年级下浙教版1.4电动机(33张).ppt
- 科学四上第三单元复习.ppt
- Byondhaha.ppt
- 立式电机转子蒸发冷却系统循环特性与测试方法的深度剖析.docx
- 2025年长春金融高等专科学校单招语文2019-2024历年真题考点试卷含答案解析.docx
- 探索中学社团生活:现状、问题与发展路径.docx
- 基于经济学视角的我国城市土地集约利用深度剖析.docx
- 通辽市科尔沁区初中美术社团活动的现状、问题与发展路径研究.docx
- 高耗能行业减排:成本剖析与政策效应探究.docx
- 学生的个别差异与教育.pptx
- 眼科专科影像数据分析关键技术与临床应用的深度剖析.docx
- MEMS传感器赋能人体助老康复:运动姿态识别的深度探索与实践.docx
- 基于时间卷积网络的卫星帆板健康管理关键技术:模型、应用与展望.docx
最近下载
- 急诊与灾难医学-第二十二章 人为灾难的医学救援.pptx
- 030904《项目实施进度里程碑确认单》.xlsx VIP
- 治疗篇第六章骨伤科四肢病证推拿讲解.ppt
- 2025年广西机场管理集团有限责任公司人员招聘笔试备考题库及答案解析.docx
- 七年级下册英语课件Unit 3《Keep Fit》(Section A 1a-1d).pptx VIP
- 福特嘉年华说明书.pdf
- 医院医疗设备管理员及使用人员岗位职责.pptx VIP
- 江苏省小学科学实验知识竞赛题库附答案.pdf VIP
- 教科版(2017秋)四年级下册科学期末复习训练题(含答案).docx VIP
- 八年级下数学期中测试题(a卷).pdf VIP
文档评论(0)