关键路径.docxVIP

  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文档。上传文档
查看更多
关键路径

一.实验名称:关键路径二.实验目的:1.熟悉图的存储结构2.掌握求关键路径的算法3.了解实际问题的求解效率与采用何种存储结构和算法有密切关系三.程序#include stdio.h#include malloc.h//-----图的邻接表存储结构-----typedef struct ArcNode{ //弧结点int adjvex; //该弧指向的顶点的序号struct ArcNode *nextarc; //指向下一条弧的指针int info; //该弧相关信息的指针}ArcNode,*Arc;typedef struct VNode{//顶点char data;//顶点信息ArcNode *firstarc;//指向第一条依附该顶点的弧}VNode,AdjList[20];typedef struct{//图AdjList vertices;//存储图的顶点的数组int vexnum,arcnum; //图的当前定点数和弧数}ALGraph;typedef struct{ //栈int *base,*top; //栈底和栈顶指针int stacksize; //栈的长度}SqStack;void CreateG(ALGraph G,int m)//建顶点数为m的图{int i,j,k,w;Arc p,q; G.vexnum=m;G.arcnum=0;//对图进行初始化for(i=0;im;i++) //输入m个顶点的信息 {printf(\nplease input VNode%d data:,i); scanf(%c,G.vertices[i].data); } for(i=1;i=m;i++) //给各顶点连以其为尾的弧 {printf(\nplease input VNode%d outarc:,i); scanf(%d,j);//输入该顶点第一条弧指向的顶点在存储数组中的序号 if(!j) G.vertices[i-1].firstarc=NULL;//j=0该顶点没有以其为尾的弧 else {G.arcnum++; //弧数增加1p=(Arc)malloc(sizeof(ArcNode));//为该顶点开辟第一个弧结点p-adjvex=j-1;//该弧指向的顶点序号 G.vertices[i-1].firstarc=p; //把弧连到该顶点 for(;;) //建立该顶点的其他以其为尾的弧结点 {scanf(%d,k); if(!k) {p-nextarc=NULL;break;} else{G.arcnum++;q=(Arc)malloc(sizeof(ArcNode)); q-adjvex=k-1; p-nextarc=q; //前一条弧指向后一条弧 } } } }//所有弧结点建立完毕 for(i=1;i=m;i++)//分别输入每个顶点以其为尾的弧的信息 {printf(\nplease input arcsinformation of VNode%d:,i); p=G.vertices[i-1].firstarc; while(p) {scanf(%d,w); p-info=w; p=p-nextarc; } }printf(“\n”);}void FindInDegree(ALGraph G,int*indegree)//求图G各顶点的入度,存入数组indegree中,序号对应于顶点序号{int i;Arc p; indegree=(int *)malloc(G.vexnum*sizeof(int)); for(i=0;iG.vexnum;i++) //indegree[ ]初始化 indegree[i]=0; for(i=1;i=G.vexnum;i++) {p=G.vertices[i-1].firstarc; //p指向弧结点 while(p) {indegree[p-ad

文档评论(0)

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

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

1亿VIP精品文档

相关文档