数据结构第七章2016.ppt

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

邻接矩阵 G-vexs[i]、G-arcs[i][j].adj 邻接表:g.vertex[i].data、g.vertex[i].firstarc.nextarc * * * DFS 1 2 5 9 6 3 7 8 4 BFS 1 2 3 4 5 6 7 8 9 * DFS 1 7 6 5 4 2 3 BFS 1 7 5 4 3 2 6 * * * 1,2,3,6,5,4 1,3,2,6,5,4 1,3,6,2,5,4 * 16,10,14,25,21,31 * 求关键活动的几个参数 “事件(顶点)” 的 最早发生时间 ve(j): ve(j) = 从源点到顶点j的最长路径长度; 这个时间决定了所有从顶点发出的有向边所代表的活动 能够开工的最早时间。 ve(源点) = 0; ve(k) = Max{ve(j) + dut(j, k)} “事件(顶点)” 的 最迟发生时间 vl(k) : vl[k]是指在不推迟整个工期的前提下,事件vl[k] 允许的最晚发生时间。 则: vl(汇点) = ve(汇点); vl(j) = Min{vl(k) – dut(j, k)} a b c d e f g h k 6 4 5 2 1 1 8 7 2 4 4 6 1 7 4 a b c d e f g h k 6 4 5 2 1 1 8 7 2 4 4 0 0 0 0 0 0 0 0 0 6 4 5 7 11 5 7 15 14 18 18 18 18 18 18 18 18 18 18 16 14 8 6 6 10 8 0 7 拓扑有序序列: a - d - f - c - b - e - h - g - k 活动ai的最早开始时间e[i]: 若活动ai是由弧vk,vj表示,根据AOE网的性质,只有事件vk发生了,活动ai才能开始。也就是说,活动ai的最早开始时间应等于事件vk的最早发生时间。因此,有: e[i]=ve[k] 活动ai的最晚开始时间l[i]: 活动ai的最晚开始时间指,在不推迟整个工程完成日期的前提下, 必须开始的最晚时间。若 由弧vk,vj表示,则ai的最晚开始时间要保证事件vj的最迟发生时间不拖后。因此,应该有: l[i]=vl[j]-dut(vk,vj) 根据每个活动的最早开始时间e[i]和最晚开始时间l[i]就可判定该活动是否为关键活动,也就是那些l[i]=e[i]的活动就是关键活动,而那些l[i]e[i]的活动则不是关键活动,l[i]-e[i]的值为活动的时间余量。关键活动确定之后,关键活动所在的路径就是关键路径。 0 6 4 5 7 7 15 14 18 18 14 16 10 7 8 6 6 0 0 0 0 6 4 5 7 7 7 15 14 14 16 0 2 3 6 6 8 8 7 10 a b c d e f g h k 6 4 5 2 1 1 8 7 2 4 4 V11 a15=6 V9 V6 V3 V5 V7 V4 V2 V1 V10 V8 a11=7 a8=8 a9=4 a12=4 a13=10 a6=5 a10=2 a14=1 a7=6 a2=4 a1=3 a3=2 a4=1 a5=3 一个具有15个活动、11个事件的假想工程的AOE网,求关键路径。 算法实现步骤: (1)输入e条弧j,k,建立AOE-网的存储结构; (2)从源点v0出发,令ve[0]=0,按拓扑有序求其余各顶点的最早发生时间ve[i](1≤i≤n-1)。如果得到的拓扑有序序列中顶点个数小于网中顶点数n,则说明网中存在环,不能求关键路径,算法终止;否则执行步骤(3)。 (3)从汇点vn出发,令vl[n-1]=ve[n-1],按逆拓扑有序求其余各顶点的最迟发生时间vl[i](n-2≥i≥2); (4)根据各顶点的ve和vl值,求每条弧s的最早开始时间e(s)和最迟开始时间1(s)。若某条弧满足条件e(s)=l(s),则为关键活动。用 栈记下拓扑有序序列. 兰州 太原 北京 济南 徐州 郑州 西安 旅客希望停靠站越少越好,则应选择 济南——北京——太原——兰州 旅客考虑的是旅程越短越好, 1120 920 720 210 540 340 640 190 济南——徐州——郑州——西安——兰州 7.6 最短路径 济南到兰州 求从某个源点到其余各点的最短路径 每一对顶点之间的最短路径 求从源点到其余各点的最短路径的算法的基本思想: 依最短路径的长度递增的次序求得各条路径 源点 v1 … 其中,从源点到顶点v的最短路径是所有最短路径中长度最短者。 v2 在这

文档评论(0)

文档精品 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档