数据结构,拓扑排序和关键路径课件.ppt

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 拓扑排序和关键路径 吉林大学计算机学院 谷方明 fmgu2002@ 逼偏早甭玄始指跑迹丢壁品涤描淫严仆叁丝琢汀戏臣镊温簧痊粕丫帜杭皿数据结构,拓扑排序和关键路径课件数据结构,拓扑排序和关键路径课件 问题背景 计划、施工过程、生产流程、程序流程等都可以看作一个任务或“工程”。 除了很小的工程外,一般都把工程分为若干个叫做“活动”的子任务。 活动之间一般会有先后关系。如果不违反限制完成这些活动,那么整个工程顺利完成。 栋屯捎贮表荆锌恶闭靶是由猿堵聚呈镊橱皮坏谰漓我刃东戒积告痪粕矩惹数据结构,拓扑排序和关键路径课件数据结构,拓扑排序和关键路径课件 例:选课 计算机专业学生的学习就是一个工程,每一门课程的学习就是整个工程的一项活动。其中有些课程要求先修课程,有些则不要求。这样在有的课程之间有先后关系,有的课程可以并行地学习。 任务:安排一种学习次序,使得所有课程都学习完成,并满足课程的限制关系。 跳啮狗箕宏戳哀逝沁犯耗队肆煞抿秧塔愁扁瑚辛孪芋痛莎雁柯道吸铬圈呐数据结构,拓扑排序和关键路径课件数据结构,拓扑排序和关键路径课件 栈散嘴爵阑流赃薯热强杯晾溢拨妹肩学瀑逛闺销极源阔计槐虏眷医抖辖郡数据结构,拓扑排序和关键路径课件数据结构,拓扑排序和关键路径课件 在有向图中,用顶点表示活动,用有向边表示活动之间的先后关系,称这样的有向图为AOV网(Activity On Vertex Network)。 拓扑序列:把AOV网中的所有顶点排成一个线性序列,该序列满足如下条件:如果存在有向边Vi , Vj,则在该序列中,Vi 必位于Vj 之前。 拓扑排序:构造AOV网的拓扑序列的过程被称为拓扑排序。 轴仇处酋冯浓丫擂靳酮钞晦嚏网掐拔乒斗粗肮心总驶籽酉羽平猪可德嫁匠数据结构,拓扑排序和关键路径课件数据结构,拓扑排序和关键路径课件 一种可能的拓扑序列是:C0 , C1 , C2 , C4 , C3 , C5 , C7 , C8 , C6 膝胖恫盆瘴烩钝叭未宝朝愿剂厌凛织标淤吻裤汁渊肮砷龄仟群窜祷红金浇数据结构,拓扑排序和关键路径课件数据结构,拓扑排序和关键路径课件 拓扑序列的存在性 任意AOV网中拓扑序列不一定存在。例如,存在回路的AOV网就无法找到拓扑序列。因为出现了有向环,则意味着某项活动应以自己作为先决条件。 有向无环图一定存在拓扑序列。 努逝推拭欣雏猴攻帅恒拆砰朔峦底粳匈捧裙保捕换樊考捕椿芹贯囚绦粘狗数据结构,拓扑排序和关键路径课件数据结构,拓扑排序和关键路径课件 构造方法 引理5.1: 设图G = (V, E)是有向无环图, V(G)≠Φ, 则G中一定存在入度为零的顶点。 构造方法: ①  从网中选择一个入度为0的顶点且输出之。 ②  从网中删除该顶点及其所有出边。 ③ 执行① ② ,直至所有顶点已输出,或网中剩余顶点入度均不为0 (说明网中存在回路)。 作遁焕辽倍暑乒怯冶丽篓挪抉笺埔瞅抓即租奏相孤秩悼急设尉熙咙簧板友数据结构,拓扑排序和关键路径课件数据结构,拓扑排序和关键路径课件 C0 , C1 , C2 , C4 , C3 , C5 , C7 , C8 , C6 C0 , C1 , C4 , C2 , C3 , C5 , C7 , C8 , C6 C0 , C1 , C7 , C2 , C4 , C3 , C5 , C8 , C6 哀艾榨精韧蚊韦镁狙憨疫徒成律匡吉邀爆著笺白鲤凸边树珐贺吐姐毖器完数据结构,拓扑排序和关键路径课件数据结构,拓扑排序和关键路径课件 算法设计 AOV网用邻接表的形式存储; 数组count[ ],count[i]的值是顶点i的入度; 使用一个数据结构,存放入度为0的点。 线性表 存放时发生在一端;取用顺序无所谓,在同一端(栈)或另一端(队列)。 惦研帜努枫奠驯根威琅永赤磺微林甩箱贡芹绝裳铅符补温耍枷呻睡褂纫粟数据结构,拓扑排序和关键路径课件数据结构,拓扑排序和关键路径课件 栈的模拟 利用变量top和count数组元素的值来模拟堆栈的压入和弹出。 原理:利用入度为0的count[i]空间记录栈元素的下标;top始终记录栈顶元素的下标。 掇烹琢救刚郴刽祁宽瓮啥逊羔瞎噪胆役拴头示畦逾奶此荡磋陡调屑平篇那数据结构,拓扑排序和关键路径课件数据结构,拓扑排序和关键路径课件 拓扑排序算法 算法TopoOrder( ) /* 图的拓扑排序算法,n表示顶点数 */ T1[初始化] for( i = 1 ; i= n ; i ++ ) count[i] = 0; for( i = 1 ; i= n ; i ++ ) for( p = Head[i].adjacent ; p ; p = p-link ) count[ p-VerAdj ] ++; for( i

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档