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

2021-10-25 07:47:32 字數 674 閱讀 7678

#include#include#define inf 65535

using namespace std;

int map[110][110]; //構建鄰接表

int ear[110],in[110],late[110]; //構建最早出發表和最晚完成表

int n,m,max;

stackturn; //存放拓撲排序的順序,最晚完成的在棧頂,最早完成的在棧底

void init()

max = -inf;

}bool topsort()

while(!in_null.empty())

} if(cnt != n)return false; //判斷是否存在迴路

return true;

}void criticalpath()

} }for(int i = 1;i <= n;i++) //若ear == late則為關鍵路徑上的點

if(ear[i] == late[i])cout<>n>>m;

init();

for(int i = 1;i <= m;i++)

if(topsort())criticalpath();

else cout<<"there's a circle"<}

拓撲排序 鄰接矩陣

include stdafx.h include include include include using namespace std define infinity int max define max vertex num 20 頂點最多個數 define length 5 頂點字元長度 鄰接...

拓撲排序 鄰接矩陣表示

time limit 1000ms memory limit 65536kb submit statistic discuss problem description 給定乙個有向圖,判斷該有向圖是否存在乙個合法的拓撲序列。input 輸入包含多組,每組格式如下。第一行包含兩個整數n,m,分別代表該...

C 拓撲排序(鄰接矩陣與鄰接表

博主新手,最近在學習拓撲排序,查閱網上資料發現有些難懂且很多方法的 不盡相同,於是就想著試試自己能不能寫出來,經過一段時間的嘗試,最終實現了拓撲排序,現在將自己的想法發表出來,可能有些瑕疵,希望各位看後不吝賜教 不知道是不是就是網上的方法,之前看網上的沒看懂.建立鄰接矩陣,輸入頂點數和邊數,初始化所...