数据结构_07.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文档。上传文档
查看更多
数据结构_07

ve(j)=max {ve(i)+dut(i1, j),ve(i2)+dut(i2, j), ve(i3)+dut(i3, j)} =max {13+4,10+2,9+5}=17 此时,集合T(以j为头的边集)={i1, j,i2, j,i3, j} vl(i)= ve(n-1) i=n-1时 (汇点的最迟时间为汇点的最早时间) Min{vl(j)?dut (i, j)} 0?j?n-2 i, j?S S为以i为尾的弧的集合。 例: Vj1 Vj2 Vj3 Vi 3 2 2 设:Vl(j1)=8 Vl(j2)=6 Vl(j3)=7 S={i , j1, i, j2, i, j3} 则: vl(i)=Min{vl(j1)?dut(i, j1), ve(j2)?dut(i, j2), Vl(j3)?dut(i, j3)} 分析求ve(j)和vl(j)的两个式子,我们可以利用拓扑排序的算法来求得ve(j)和vl(i) 。在对AOE-网进行拓扑排序的同时计算ve(j) ,对AOE-网按逆拓扑序列进行拓扑排序的同时求vl(i) 。则计算ve(j)的算法可以描述为: =Min {5,4,5} =4 1. 置所有ve(j)的初值为0 1?j?n 2. 找入度为0的顶点,并将该顶点入栈; 3. 栈非空时,重复执行下列各步,否则转4, (1) 弹出栈顶元素Vj,并输出Vj; (2) 栈Vj的直接后继Vk ,将Vk的入度减1,并将入度减至0的顶点进栈; (3) 计算 ve(k)=Max {ve(k), ve(j)+dut(j,k)}。 4. 栈空时,算法终止。若输出的顶点数少于n则AOE-网中有回路,工程不可行,否则(输出顶点数等于n),已求得所有ve(j)。 1 4 6 3 2 5 a3=2 a1=3 a2=2 a5=4 a7=2 a8=1 a6=3 a4=3 例: 1) 置ve(1)~ve(6)=0 2) 进行拓扑排序 输出V1 ve(2)=max{ve(2),ve(1)+dut(1,2)} =max {0,0+3}=3 ve(3)=max{ve(3),ve(1)+dut(1,3)} =max {0,0+2}=2 输出V3 ve(4)=max{ve(4),ve(3)+dut(3,4)} =max {5, 2+4}=6 ve(6)=max{ve(6),ve(3)+dut(3,6)} =max {0, 2+3}=5 输出V2 ve(4)=max{ve(4),ve(2)+dut(2,4)} =max {0, 3+2}=5 ve(5)=max{ve(5),ve(2)+dut(2,5)} =max {0, 3+3}=6 输出V5 ve(6)=max{ve(6),ve(5)+dut(5,6)} =max {8,6+1}=8 输出V4 ve(6)=max{ve(6),ve(4)+dut(4,6)} =max {5, 6+2}=8 输出V6 其中某些课是基础课,它独立于其它课程,而学习另外一些课程有其先决条件,即必须先修完一些前导课程后。才能开始学习这门课程。如学习数据结构之前必须先修完C1和C2课程,这就是学习数据结构的先决条件,这种先决条件定义了课程之间的优先关系,这种优先关系可以用有向图更清楚地表示。如下图顶点表示课程,边表示先决条件。若课程i是课程j的先决条件,则图中有弧i,j。 C2 C4 C1 C5 C7 C3 C12 C8 C10 C9 C11 C6 在一般情况下,这样的有向图可以表示某工程的施工图,产品的生产流程图,或程序的流程图。 定义:1) 若有向图D中顶点表示活动,有向边表示活动间的优先关系,则此有向图称为顶点表示活动的网,或称AOV-网。 (Activity On Vertex Network) 2) 在AOV-网中顶点i到顶点j有一条有向路径,则i是j的前驱,j是i的后继,若(i, j)是D中的弧,则i是j的直接前驱,j是i的直接后继。 一个AOV-网要能表示一个可行的工程,(其优先关系应该是传递的,反自反的关系,这种关系称为拟序关系),不应该出现有向回路,因为出现有向回路说明了某项活动应以自己为先决条件,显然这是荒廖的。若设计这样的流程图,工程便无法进行。而对程序来说就是存在一个死循环。因此,若给定一个AOV-网,我们所关心的问题是:由边所定义的优先关系是否是拟序关系,实际上就是考虑网络中是否存在有向回路(圈)的问题。如何检测AOV-网络中是存在有向回路。 其办法是:构造一个顶点的线性序列(…i,…,k, …,j,…),使得此序列中不仅保持有向图中原有的顶

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档