資料結構 關鍵路徑 CriticalPath

2021-06-19 04:50:26 字數 2125 閱讀 9038

#include "stdio.h"    

#include "stdlib.h"

#include "io.h"

#include "math.h"

#include "time.h"

#define ok 1

#define error 0

#define true 1

#define false 0

#define maxedge 30

#define maxvex 30

#define infinity 65535

typedef int status; /* status是函式的型別,其值是函式結果狀態**,如ok等 */

int *etv,*ltv; /* 事件最早發生時間和最遲發生時間陣列,全域性變數 */

int *stack2; /* 用於儲存拓撲序列的棧 */

int top2; /* 用於stack2的指標 */

/* 鄰接矩陣結構 */

typedef struct

mgraph;

/* 鄰接表結構****************** */

typedef struct edgenode /* 邊表結點 */

edgenode;

typedef struct vertexnode /* 頂點表結點 */

vertexnode, adjlist[maxvex];

typedef struct

graphadjlist,*graphadjlist;

/* **************************** */

void createmgraph(mgraph *g)/* 構件圖 */

for (i = 0; i < g->numvertexes; i++)/* 初始化圖 */ }

g->arc[0][1]=3;

g->arc[0][2]=4;

g->arc[1][3]=5;

g->arc[1][4]=6;

g->arc[2][3]=8;

g->arc[2][5]=7;

g->arc[3][4]=3;

g->arc[4][6]=9;

g->arc[4][7]=4;

g->arc[5][7]=6;

g->arc[6][9]=2;

g->arc[7][8]=5;

g->arc[8][9]=3;

}/* 利用鄰接矩陣構建鄰接表 */

void createalgraph(mgraph g,graphadjlist *gl)

for(i=0;iadjvex=j; /* 鄰接序號為j */

e->weight=g.arc[i][j];

e->next=(*gl)->adjlist[i].firstedge; /* 將當前頂點上的指向的結點指標賦值給e */

(*gl)->adjlist[i].firstedge=e; /* 將當前頂點的指標指向e */

(*gl)->adjlist[j].in++;

}} } }

/* 拓撲排序 */

status topologicalsort(graphadjlist gl)

}

printf("\n");

if(count < gl->numvertexes)

return error;

else

return ok;

}/* 求關鍵路徑,gl為有向網,輸出g的各項關鍵活動 */

void criticalpath(graphadjlist gl)

}

printf("ltv:\t");

for(i=0; inumvertexes; i++)

printf("%d -> ",ltv[i]);

printf("\n");

for(j=0; jnumvertexes; j++) /* 求ete,lte和關鍵活動 */

}}int main(void)

資料結構 關鍵路徑

aov aoe都是有權無向圖,aov邊不帶權值,aoe帶權值。關鍵路徑是aoe中,開始頂點到結束頂點的所有路徑中,具有最大路徑長度的路徑成為關鍵路徑,路徑上的點是關鍵活動。1 關鍵路徑如果有多條,至提高一條關鍵路徑上的關鍵活動並不能縮短工期,必須要加快所有關鍵路徑上的關鍵活動才能加快工期。2 關鍵路...

《大話資料結構》之關鍵路徑演算法

關鍵路徑演算法是在aoe網中找出完成所有活動耗時最長的路徑的方法。程式中涉及的結構 typedef char vertextype typedef int edgetype 鄰接節點結構 typedef struct edgenode edgenode 頂點節點列表 typedef struct v...

PTA 資料結構與演算法 關鍵路徑

1.aoe圖的關鍵路徑就是最長的路徑tf 2.aoe圖的權值最大的邊 活動 一定是關鍵活動。tf 3.在aoe 網工程中,減少任一關鍵活動上的權值後,整個工期也就會相應的減小。tf 4.aoe 網工程工期為關鍵活動上的權之和。tf 5.在關鍵路徑上的活動都是關鍵活動,而關鍵活動也必在關鍵路徑上。tf...