c数据结构chapt8图.ppt

  1. 1、本文档共82页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
V1 V4 V6 V2 V3 V5 V1 V2 V3 V4 V5 V6 0 2 1 2 3 0 4 3 2 5 2 5 5 4 V1 V4 V6 V2 V3 V5 V1 V2 V3 V4 V5 V6 0 2 1 2 3 0 4 3 2 5 2 5 5 4 步骤 0 1 2 3 4 5 6 输出 V6 V1 V3 V2 V4 V5 m 0 1 2 3 4 5 6=n 栈 TOP 6 1 1 3 4 4 2 4 5 入度域 0 2 1 2 3 0 1 2 0 1 2 0 0 1 0 0 2 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 二、拓扑排序算法 Status toposort(algraph G)//G采用邻接链表存储。若无回路输出拓扑序列 { finddegree(G,indegree ); //对各顶点求入度,indegree[0..vernum-1] INITstack (s); FOR (i=0 ; IG.vexnum; ++I) IF ( ! Indegree[I] ) PUSH(s,i); //所有入度为0的入top栈 count = 0; //对输出顶点计数的变量初值为0 WHILE ( !EMPTY(S) ) { POP(s , i); printf (I,G.vertices[I].data ); ++count ; //输出 ,并记数 for (p=G.vertices[I].firstarc ; p ; p=p-nextarc ) { k=p-adjvex ; //下面对I号顶点的每个邻接点的入度-1 if (!(--indegree[k])) PUSH(top, k); //入度减为0的顶点入栈 } //for }//while IF (count G.vexnum) RETURN error ; //有回路 ELSE RETURN ok; }// toposort 8.6 关键路径 一、AOE网(activity on edge) 若有向图中,顶点表示事件,弧表示活动,弧上的权表示完成该活动所需的时间,则称这类有向图为边表示活动的网(AOE网) AOE网中仅有一个入度为0的事件,称为源点,它表示工程的开始;网中也仅有一个出度为0的事件,称为汇点,它表示工程的结束。 每一事件V表示以它为弧头的所有活动已经完成,同时,也表示以它为弧尾的所有活动可以开始。 8.6 关键路径 AOE网可解决如下问题: 估算工程的最短工期(从源点到 汇点至少需要多少时间) 找出哪些活动是影响整个工程进展的关键 ① ② ③ ⑤ a1=6 a4=1 a2=4 a5=1 有4个事件:V1, V2, V3, V5 V1为源点,V5为汇点 有4个活动:a1, a2, a4, a5 V3表示:a2已完成,a5可以开始 8.6 关键路径 二、几个术语 路径长度:路径上各活动持续时间的总和 (即:路径上所有弧的权值之和) 关键路径:从源点到汇点之间路径长度最长的路径, (不一定唯一) 事件V i的最早发生时间ve(i):从源点到V i的最长路径长度 活动 ai的最早开始时间e(i):等于该活动的弧尾事件V j的最早发生时间 即若j, k表示活动ai ,则有e(i)=ve(j) vj vk ai vr 8.6 关键路径 事件 vk 的最迟发生时间 vl(k):是在不推迟整个工期的前提下,该事件最迟必须发生的时间 活动ai的最迟开始时间l(i):是该活动的弧头事件的最迟发生时间与该活动的持续时间之差, 即l(i)=vl(k)- ai 的持续时间 关键活动:l(i)=e(i)的活动 由此可见:在AOE网中找关键活动问题可转化为求 l(i)=e(i),而e(i)=

文档评论(0)

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

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

1亿VIP精品文档

相关文档