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