求關鍵路徑(包含鄰接表的建立 拓撲排序)

2021-08-27 13:13:17 字數 852 閱讀 1511

#include

#include

typedef struct node

edgenode;

typedef struct vnode //頂點的表結點

vertexnode;

vertexnode adjlist[100];//頂點節點向量

void creatalgraph(int n,int e)//建立有向圖的鄰接表儲存

printf("\n");

}for(i=0;iadjvex,s->info);

s=s->next;

}printf("\n\n");

}printf("\n");

}int topsort(int tsort,int n)

p=p->next; }}

if(mreturn 1;}}

typedef struct

stack;

int ve[100]=,vl[100],e[100],l[100];

stack t;

int vertexelytinme(int n)

if((ve[j]+(p->info))>ve[k])//求得最大的ve[k] }

}if(count

int pivotalpath(int n)//求aoe網的關鍵活動

}for(i=n-1;i>=0;i--)

printf("vl[%d]==%d ",i,vl[i]);

printf("\n\n");

printf("頂點1 頂點2 權值 最早 最遲 是否為關鍵活動\n");

for(j=0;jnext)}}

return 1;

}int main()

拓撲排序 關鍵路徑(鄰接矩陣實現)

include include define inf 65535 using namespace std int map 110 110 構建鄰接表 int ear 110 in 110 late 110 構建最早出發表和最晚完成表 int n,m,max stackturn 存放拓撲排序的順序,最...

基於鄰接表的拓撲排序實現

由於 比較簡單,就直接貼出來了 1 include 2 include 3 include 4 include 5 using namespace std 67 8enum graphtype9 1516 結點顏色代表遍歷情況 17enum colortype18 2324 template25 c...

演算法導論 鄰接表儲存的拓撲排序

在鄰接表儲存結構中,為了便於檢查每個頂點的入度,可在頂點表中增加乙個入度域 id 這樣的鄰接表如下圖所示,這樣只需對由n個元素構成的頂點表進行檢查就能找出入度為0的頂點。為了避免對每個入度為0的頂點重複訪問,可用乙個鏈棧來儲存所有入度為0的頂點。在進行拓撲排序前,只要對頂點表進行一次掃瞄,便可將所有...