- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.拓扑排序的算法实现 //本算法中采用图7-34所示的AOV网作示范 #includeiostream.h typedef int elemtype; const int n=5; //n表示图中顶点数 const int e=6; //e表示图中弧的数目 class link { public: elemtype data; link *next; }; class node { public: link a[n+1]; void creatlink3(node g ); void topsort (node g ); } ; void node::creatlink3( node g) //建立带入度的邻接表 { int i,j,k ; link *s ; for(i=1; i=n;i++) //建立邻接表头结点 { g.a[i].data=0; //入度值为0 g.a[i].next=NULL; } for(k=1; k=e;k++) { cout请输入一条弧:; cinij ; //输入一条弧 i,j coutendl; s=new link; //申请一个动态存储单元 s-data=j ; s-next=g.a[i].next ; g.a[i].next=s ; g.a[j].data++; //入度加1 } } void node::topsort (node g ) //拓扑排序 {int top=0,m=0; for (int i=1;i=n;i++) //入度为0的顶点进栈 if (g.a[i].data==0) {g.a[i].data=top; top=i;} while (top0) {i=top; top=g.a[top].data, //出栈 cout i ; //输出入度为0的顶点 m++; //输出结点个数增1 link *p=g.a[i].next; while (p!=NULL) {int k=p-data; g.a[k].data-- ; //删除一条边,顶点入度值减1 if(g.a[k].data==0) { g.a[k].data=top; top=k;} //入度为0进栈 p=p-next; } } if (mn) cout网络中出现环路; } void main() { node g; g.creatlink3(g) ; g.topsort( g ); } 用本算法对图7-34进行跟踪,它的邻接表见图7-35,则得到的拓扑序列是惟一的,得到的结果为:2,1,3,4,5。 图7-35 图7-34中AOV网的邻接表 7.6.2 关键路径 1.基本概念 与AOV网相对应的是AOE网(Active On Edge)。AOE网是一种带权的DAG图,在AOE网中,用顶点表示事件(Event),有向边表示活动的优先关系,边上的权值表示活动的持续时间。一般情形下,AOE网可以用来估算工程的完成时间。 例如,如图7-36所示是一个AOE网,在该网中,有9个事件v1,v2,v3,v4,v5,v6,v7,v8,v9,有11项活动a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,边上的权值表示活动的持续时间。 图7-36 一个AOE网 由于整个工程只有一个开始点和一个完成点,因此,在无环的情况下,AOE网中只有一个入度为0的顶点(称为源点)和一个出度为0的顶点(称为汇点)。 和AOV网不同的是,AOE网有待研究的问题是:(1)完成整个工程需要多少时间?(2)哪些活动是影响工程进度的关键? 由于AOE网中有些活动可以并行地进行,所以完成工程的最短时间是从开始点到完成点的最长路径的长度(权值之和最大)。路径长度最长的路径叫关键路径。 假设开始点是v1,从v1到vi的最长路径叫做事件vi的最早发生时间。这个时间决定了所有以vi为尾的弧所表示的活动的最早开始时间。用e(i)表示活动ai的最早开始时间,用l(i)表示活动的最迟开始时间。两者之差l(i)-e(i)意味着完成活动ai的时间余量。我们把l(i)=e(i)的活动叫做关键活动。 显然,关键路径上的所有活动都是关键活动,因此,提前完成非关键活动并
您可能关注的文档
最近下载
- 2025年中国气泡水行业深度调研与行业竞争对手分析报告.docx
- 高等教育学教学课件电子教案全套课件.pptx VIP
- 46桂阳县方元镇秀里村和荷叶镇山田村历史遗留砷渣污染场地风险管控项目附件文本.docx VIP
- 2024人教版PEP英语三年级上册全册教学设计教案含反思.pdf
- 课题材料目录.pdf
- 美好生活劳动创造-中职生劳动教育教程PPT完整全套教学课件.pptx VIP
- 第十四届全多媒体课件大赛获奖作品名单-初中组.doc VIP
- 湖北省武汉市2020年中考英语真题(含答案).docx VIP
- 2026届高考写作指导:先行者与后来者作文主体段讲解.pptx VIP
- 《GBT_20801.1-2020_压力管道规范_工业管道_第1部分_总则》.pdf VIP
文档评论(0)