/*-----------------------------------求关键路径--------------------------------------*/
#include""
#include""
#include""
#include""
typedef struct node
{
int adjvex;
int dut;
struct node *next;
}edgenode;
typedef struct
{
int projectname;
int id;
edgenode *link;
}vexnode;
void CreateGraphic(vexnode *Graphicmap,int projectnumber,int activenumber)
{
int begin,end,duttem;
edgenode *p;
for(int i=0;i<projectnumber;i++)
{
Graphicmap[i].projectname=i;
Graphicmap[i].id=0;
Graphicmap[i].link=NULL;
}
printf("某项目的开始到结束的图中节点输入<vi,vj,dut>\n");
printf("如:3,4,9回车表示第三节点到第四节点之间的活动用了9个单位时间\n");
for(int k=0;k<activenumber;k++)
{
scanf("%d,&d,&d",&begin,&end,&duttem);
p=(edgenode*)malloc(sizeof(edgenode));
p->adjvex=end-1;
p->dut=duttem;
Graphicmap[end-1].id++;
p->next=Graphicmap[begin-1].link;
Graphicmap[begin-1].link=p;
}
}
int SearchMapPath(vexnode* Graphicmap,int projectnumber,int activenumber,int &totaltime)
{
int i,j,k,m=0;
int front=-1,rear=-1;
int *topologystack=(int*)malloc(projectnumber*sizeof(int));
int *vl=(int*)malloc(projectnumber*sizeof(int));
int *ve=(int*)malloc(projectnumber*sizeof(int));
int *l=(int*)malloc(activenumber*sizeof(int));
int *e=(int*)malloc(activenumber*sizeof(int));
edgenode *p;
totaltime=0;
for(i=0;i<projectnumber;i++)
ve[i]=0;
for(i=0;i<projectnu
关键路径 来自淘豆网www.taodocs.com转载请标明出处.