1 / 7
文档名称:

关键路径.docx

格式:docx   大小:78KB   页数:7页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

关键路径.docx

上传人:jianjian401 2017/2/19 文件大小:78 KB

下载得到文件列表

关键路径.docx

文档介绍

文档介绍::: 1. 熟悉图的存储结构 2. 掌握求关键路径的算法 3. #include "" #include "" //----- 图的邻接表存储结构----- typedef struct ode{ //弧结点 int adjvex; //该弧指向的顶点的序号 struct ode *nextarc; //指向下一条弧的指针 int info; //该弧相关信息的指针}ode,*Arc; typedef struct VNode{ //顶点 char data; //顶点信息 ode *firstarc; //指向第一条依附该顶点的弧}VNode,AdjList[20]; typedef struct{ //图 AdjList vertices; //存储图的顶点的数组 int vexnum,um; //图的当前定点数和弧数}ALGraph; typedef struct{ //栈 int *base,*top; //栈底和栈顶指针 int stacksize; //栈的长度}SqStack; void CreateG(ALGraph &G,int m) //建顶点数为 m的图{int i,j,k,w; Arc p,q; =m;=0; //对图进行初始化 for(i= 0 ;i<m;i++) //输入 m个顶点的信息{printf(" \n please input VNode%d data:",i); scanf("%c",&[i].data); } for(i= 1 ;i< = m;i++) //给各顶点连以其为尾的弧{printf(" \n please input VNode%d outarc:",i); scanf("%d",&j); //输入该顶点第一条弧指向的顶点在存储数组中的序号 if(!j) [i-1].firstarc=NULL; //j=0 该顶点没有以其为尾的弧 else { ++; //弧数增加 1 p=(Arc)malloc(sizeof(ode)); //为该顶点开辟第一个弧结点 p->adjvex=j -1; //该弧指向的顶点序号 [i -1 ].firstarc=p; //把弧连到该顶点 for(;;) //建立该顶点的其他以其为尾的弧结点{scanf("%d",&k); if(!k) {p->nextarc=NULL;break;} else {++; q=(Arc)malloc(sizeof(ode)); q->adjvex=k -1; p->nextarc=q; //前一条弧指向后一条弧}}}} //所有弧结点建立完毕 for(i=1;i<=m;i++) //分别输入每个顶点以其为尾的弧的信息{printf(" \n please input arcs'information of VNode%d:",i); p=[i -1 ].firstarc; while(p) {scanf("%d",&w); p->info=w; p=p->nextarc; }} printf(