讀入檔案project.txt:810
1 2 3 4 5 6 7 8
1,2,6,a
1,5,2,b
2,3,3,c
2,4,5,d
2,5,3,e
3,7,2,f
4,7,3,g
5,6,4,h
6,7,2,i
7,8,2,j
#include #include #include #define max_len 30
typedef struct node //邊表結點
edgenode;
typedef struct //頂點表結點
vertexnode;
void creatgraph(file *fp,vertexnode *g,int vertexnum,int edgenum) //生成圖的鄰接表
}void leastday(vertexnode *g,int vertexnum,int edgenum) //求關鍵路徑
; //頂點最早發生時間
int vl[max_len]=; //頂點最晚發生時間
int ee[max_len]=; //活動最早發生時間
int el[max_len]=; //活動最晚發生時間
edgenode *p;
queue = (int*)malloc(vertexnum*sizeof(int));
for(i=0;iadjvex;
g[k].in--;
if((ve[j]+p->weight)>ve[k])
ve[k] = ve[j]+p->weight;
if(g[k].in ==0)
queue[++rear] = k;
p=p->next;}}
if(quantity=0;i--) //回退階段求vl
}i = -1;
for(j=0;jadjvex;
ee[++i]=ve[j]; //求ee ,e(i)=ve(j)
el[i]=vl[k]-p->weight; //求el , l(i)=vl(k)-act(ai)
if(el[i]==ee[i])
p=p->next;}}
key[n] = g[vertexnum-1].vertexdata;
printf("關鍵路徑為:\n");
for(i=0;i<=n;i++)
printf("\n");
}int main()
printf("資料已從檔案中讀入!\n");
fscanf(fp," %d",&vertexnum);
fscanf(fp," %d",&edgenum);
printf("頂點數%d 邊數%d\n",vertexnum,edgenum);
g=(vertexnode*)malloc(vertexnum*sizeof(vertexnode));
creatgraph(fp,g,vertexnum,edgenum);
leastday(g,vertexnum,edgenum);
return 0;
}
拓撲排序 工程
description 張三是某工程公司的專案工程師。一天公司接下一項大型工程,該公司在大型工程的施工前,先要把整個工程劃分為若干個子工程,並把這些子工程編號為1 2 n 這樣劃分之後,子工程之間就會有一些依賴關係,即一些子工程必須在某些子工程完成之後才能施工,公司需要工程師張三計算整個工程最少的完...
拓撲排序 工程
張三是某工程公司的專案工程師。一天公司接下一項大型工程,該公司在大型工程的施工前,先要把整個工程劃分為若干個子工程,並把這些子工程編號為1,2 n 1,2,n 1,2,n 這樣劃分之後,子工程之間就會有一些依賴關係,即一些子工程必須在某些子工程完成之後才能施工,公司需要工程師張三計算整個工程最少的完...
python 拓撲排序 Python 拓撲排序
python 拓撲排序 在圖論中,由乙個有向無環圖的頂點組成的序列,當且僅當滿足下列條件時,稱為該圖的乙個拓撲排序 英語 topological sorting 每個頂點出現且只出現一次 若a在序列中排在b的前面,則在圖中不存在從b到a的路徑。print 拓撲排序結果 g.topologicalso...