关键 路径代码算法

关键 路径代码算法

ID:37716507

大小:18.45 KB

页数:5页

时间:2019-05-29

关键 路径代码算法_第1页
关键 路径代码算法_第2页
关键 路径代码算法_第3页
关键 路径代码算法_第4页
关键 路径代码算法_第5页
资源描述:

《关键 路径代码算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#include#include#definestack_max_size100#definestack_extra10typedefstruct{int*top;int*base;intstacksize;}vexstack,*pvexstack;intinitstack(vexstack&st){st.base=(int*)malloc(stack_max_size*sizeof(int));if(!st.base)exit(0);st.top=st.base;st.

2、stacksize=stack_max_size;return1;}intpop(vexstack&st,int&a){if(st.top==st.base)return0;a=*(--st.top);return1;}intpush(vexstack&st,inta){if(st.top-st.base>=st.stacksize){st.base=(int*)realloc(st.base,(stack_max_size+stack_extra)*sizeof(int));if(!st.base)exit

3、(0);st.top=st.base+st.stacksize;st.stacksize+=stack_extra;}*st.top++=a;return1;}intdestroystack(vexstack&st){free(st.base);return1;}intemptystack(vexstackst){if(st.top==st.base)return1;elsereturn0;}typedefstructnarc{intadjvex;intinfo;}narc,*pnarc;typedefstr

4、uctheadvexter{intindegree;intkaiguan;intoutdegree;chardata;pnarcoutarc;}headvexter,*pheadvexter;typedefstruct{intvexnum;pheadvextervexs;}graph,*pgraph;voidinitgraph(graph&G){inti=0,j,k=0,n,l=0;charc[100];printf("请输入有向图的节点:");gets(c);while(c[i]!=''){i++;

5、}G.vexnum=i;G.vexs=(pheadvexter)malloc((i+1)*sizeof(headvexter));i=0;while(c[i]!=''){G.vexs[i+1].data=c[i];G.vexs[i+1].kaiguan=0;i++;}n=i;for(j=1;j<=n;j++){printf("请输入节点%c的入度:",G.vexs[j].data);scanf("%d",&G.vexs[j].indegree);printf("请输入节点%c的出度:",G.vexs[j]

6、.data);scanf("%d",&G.vexs[j].outdegree);G.vexs[j].outarc=(pnarc)malloc((G.vexs[j].outdegree+1)*sizeof(narc));for(i=1;i<=G.vexs[j].outdegree;i++){printf("%c节点的第%d条弧对应的邻接点所对应的序号为:",G.vexs[j].data,i);scanf("%d",&G.vexs[j].outarc[i].adjvex);printf("%c节点的第%d条弧所带

7、的信息为:",G.vexs[j].data,i);scanf("%d",&G.vexs[j].outarc[i].info);}}}inttopologicalorder(graphG,vexstack&s,int*&ve,int&max){inti=1,j,k,count=0;ve=(int*)malloc((G.vexnum+1)*sizeof(int));while(i<=(G.vexnum+1)){ve[i++]=0;}for(i=1;i<=G.vexnum;i++){if((G.vexs[i].in

8、degree==0)&&G.vexs[i].kaiguan==0){push(s,i);G.vexs[i].kaiguan=1;count++;}for(j=1;j<=G.vexs[i].outdegree;j++){k=G.vexs[i].outarc[j].adjvex;if(ve[i]+G.vexs[i].outarc[j].info>ve[k]){ve[k]=ve[i]+G.vexs[i].

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。