(第十七讲).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* (第十七讲) 绍兴文理学院 计算机系计算机应用教研室 AAA BBBB 如何进行工程设计使 工期最短? AAA BBBB 第6章 图(5) 一、教学目的:明确有向无环图的有关概念;明确拓扑排序的概念;掌握求拓扑排序的方法及相应的算法;明确关键路径的有关概念;掌握求关键路径的方法及相应的算法;初步会用关键路径法进行工程计划。算法设计训练。 二、教学重点:拓扑排序的概念;求拓扑排序的方法及其算法;关键路径的有关概念;求关键路径的方法及其算法;用关键路径法进行工程计划。算法设计训练。 三、教学难点:求拓扑排序的方法及其算法;求关键路径的方法及其算法;用关键路径法进行工程计划。算法设计训练。 四、教学过程: AAA BBBB §6.4.3 拓扑排序 1、AOV-网 (1) 有向无环图 ① 概念:无环的有向图(directed acycline graph),简称DAG图。 ② 应用:工程流程、生产过程中各道工序的流程、程序流程、课程的流程等。 (2) AOV-网 ① 概念:用顶点表示活动,弧表示活动间优先关系的有向图称为顶点表示活动的网(Activity On Vertex Network)简称为AOV-网。 ② 拓扑排序和拓扑序列:所谓拓扑排序就是将AOV-网中所有顶点排成一个线性序列,该序列满足:若在AOV-网中由顶点vi到顶点vj有一条路径,则在该线性序列中的顶点vi必定在顶点vj之前。该线性序列称为拓扑序列。 ③ 课程关系例 TKS * * AAA BBBB c4 c1 c2 c3 c12 c9 c10 c11 c6 c7 c8 c5 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 程序设计 离散数学 数据结构 汇编语言 算法分析 计算机体系 编译方法 操作系统 高等数学 线性代数 电子电路 数值分析 无 c1 c1,c2 c1 c3,c4 c11 c5,c3 c3,c6 无 c9 c9 c9,c10,c1 课程编号 课程名称 先决条件 某校计算机专业课程流程可用AOV网表示。其中顶点:表示课程(也称活动),弧:表示课程间的先修关系; TKS * * AAA BBBB ④ 前驱和后继:在网中, c4 c1 c2 c3 c12 c9 c10 c11 c6 c7 c8 c5 ▲ 右图的其中两个拓扑有序序列: (C1,C2,C3,C4,C5,C7,C9,C10,C11,C6,C12,C8) 和(C9,C10,C11,C6,C1,C12,C4,C2,C3,C5,C7,C8) 若从顶点i到顶点j有一条有向路径,则i是j的前驱,j是i的后继。 若从<i,j>点网中一条弧,则i是j的直接前驱,j点i的直接后继。 AOV-网中不应出现有向环,检测的办法是对有向图构造其顶点的拓扑有序序列,若网中所有顶点都在它的拓扑有序序列中,则该AOV-网中必不存在环。 TKS * * AAA BBBB (1) 在有向图中选一个无前驱的顶点(即此顶点入度为0),并输出之; (2) 从图中删去该顶点,同时删去所有以它为尾的狐。 (3) 重复(1)和(2),直至不存在无前驱的顶点。 (4) 若此时输出的顶点数小于有向图中的顶点数,则说明有向图中存在环,否则输出的顶点序列即为一个拓扑序列。 ▲ 示例 2、拓扑排序的过程 c4 c1 c2 c3 c12 c9 c10 c11 c6 c7 c8 c5 拓扑序列: C1 C9 C2 C4 C10 C11 C3 C12 C6 C5 C8 C7 TKS * * AAA BBBB (1) 有关数据结构 ① 顶点的入度:int degree[] 用于存储顶点的入度数 ② 整数栈 int stack[] 用于存储入度为0的顶点的编号 ③ 整数组 topo[] 用于记录拓扑序列的顶点序号 ④ 邻接表中弧单链表结点结构 struct arcnode {int adjvex; int w; arcnode *nextarc; }; 3、拓扑排序的实现 ⑤ 邻接表表头顶点数组元素结构 typedef struct vnode {int data; arcnode *firstarc; } *adjlist; ⑥ 有向图(AOV网)的邻接表结构 struct algraph {adjlist vertices; int vexnum,arcnum; }; TKS * * AAA BBBB (2) 算法思想 ① 求出各顶点的入度存人数组indegree[]中,并将人度为0的顶点入栈。 ② while(栈非空) { Ⅰ 将栈顶顶点v弹出并输和保存在

文档评论(0)

沃爱茜 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档