关键路径c++代码实现

上传人:M****1 文档编号:505076118 上传时间:2023-02-16 格式:DOCX 页数:4 大小:9.97KB
返回 下载 相关 举报
关键路径c++代码实现_第1页
第1页 / 共4页
关键路径c++代码实现_第2页
第2页 / 共4页
关键路径c++代码实现_第3页
第3页 / 共4页
关键路径c++代码实现_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《关键路径c++代码实现》由会员分享,可在线阅读,更多相关《关键路径c++代码实现(4页珍藏版)》请在金锄头文库上搜索。

1、#include#include#include#includetypedef struct nodeint adjvex;int dut;struct node *next;edgenode;typedef structint projectname;int id;edgenode *link;vexnode;void CreateGraphic(vexnode* Graphicmap,int projectnumber,int activenumber)int begin,end,duttem;edgenode *p;for(int i=0;in);printf如:1 2 3回车表示第三节

2、点到第四节点之间的活动用了 9个单位时间n); for(int k=0;kactivenumber;k+)scanf(%d%d%d,&begin,&end,&duttem);p=(edgenode*)malloc(sizeof(edgenode);p-adjvex =end-1;p-dut =duttem;Graphicmapend-1.id+;p-next=Graphicmapbegin-1.link;Graphicmapbegin-1.link=p;int SearchMapPath(vexnode* Graphicmap,int projectnumber,int activenumbe

3、r,int& totaltime)int i,j,k,m=0;int front=-1,rear=-1;int* to pologys tack=( int *)malloc(projec tn umber*size用来保存拓/扌卜排列int *vl=(in t*)malloc(projec tn umber*sizeof用来表示在不推迟整个工程的前提下, VJ允许最迟发生的时间int* ve=(int*)malloc(projectnumber*sizeof用来表示/Vj 最早发生时间int* l=(int*)malloc(activenumber*sizeof8来:表示活动 Ai最迟完成开

4、始时间int* e=(in t*)malloc(ac ti venumber*sizeof表示活动最早开始时间 edgenode *p;totaltime=0; for(i=0;iprojectnumber;i+) ve最早时间初始化为 0 for(i=0;iadjvex ; Graphicmapk.id -; if(vej+p-dut vek) vek=vej+p-dut ;if(Graphicmapk.id =0) topologystack+rear=k;p=p-next ;if(mprojectnumber)prin tf (图有回路不可计算出关键路径n);prin tf将退出本程序n

5、);return 0;totaltime=veprojectnumber-1; for(i=0;i=0;i-)j=topologystacki; p=Graphicmapj.link ; while(p) k=p-adjvex ;if(vlk-p-dut )dut ;p=p-next ;i=0;printf (起点丨终点 最早开始时间最迟完成时间差值|备注丨); for(j=0;jprojectnumber;j+)p=Graphicmapj.link;while(p)k二p-adjvex ; e+i=vej; li=vlk-p-dut;printf(%4d | %4d|%4d|%4d|%4d|

6、,Graphicmapj.projec tn ame +l,Graphicmapk.projec tn ame +l,ei,li,li-ei); if(li=ei)p r i n t f (关键|活动| ) ;printf(n);p=p-next ;return 1;void seekkeyroot()int projectnumber,activenumber,totaltime=0; system(cls);prin tf请输入这个工程的化成图形的节点数:); scanf(%d,&projectnumber);prin tf请输入这个工程的活动个数:); scanf(%d,&activen

7、umber);vexnode* Graphicmap=(vexnode*)malloc(projectnumber*sizeof(vexnode); CreateGraphic(Graphicmap,projectnumber,activenumber);SearchMapPath(Graphicmap,projectnumber,activenumber,totaltime); prin tf整个工程所用的最短时间为:%d个单位时间n, tot al time); system(pause);int main()char ch;for(;)dosystem(cls); printf(关.键.路.径.算.法n);prin tf (%s,(S)开r始输入工程的节点数据并求出关键路径n); prin tf (%s,(E)退出n);prin tf(%s请输入选择:);scanf(%c,&ch);ch=toupper(ch);while(ch!=S&ch!=E);switch(ch)caseS:seekkeyroot(); break;caseE:return 1;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号