#include "介面執行如下:stdafx.h
"#include
#include
#include
#include
using
namespace
std;
#define infinity int_max
#define max_vertex_num 20 //
頂點最多個數
#define length 5 //
頂點字元長度
//鄰接矩陣
typedef struct
_graph
graph;
int locatevex(const graph & g, char
name[length])
}return -1;}
//圖的建造
void creategraph(graph &g)
}for (int i = 0; i < g.vexnum; i++)
fcin>>g.arcs;
char
archead[length];
char
arctail[length];
intweight;
for (int i = 0; i < g.arcs; i++)
}//v的第乙個鄰接點
int firstadjvex(const graph &g, int
v) }
return -1;}
//v相對於w的下乙個鄰接點
int nextadjvex(const graph &g, int v, int
w) }
return -1;}
//鄰接矩陣的輸出
void printadjvex(const graph &g)
else
}cout
<
}cout
<
************************************拓撲排序*************************************begin
//查詢入度為0的頂點
void findindegree(graph g, int
indegree)
}}}//
拓撲排序
bool
topologicalsort(graph g)
; findindegree(g, indegree);
queue
q;int i = 0
;
for (; i < g.vexnum; i++)
}int count = 0
;
while (!q.empty())}}
}if (count
else}//
************************************拓撲排序************************************end
//輔助函式,設定控制台的顏色
void
setconsoletextcolor(word dwcolor)
setconsoletextattribute(handle, dwcolor);
}int _tmain(int argc, _tchar*argv)
建造圖所用的graph.txt如下:
8v1 v2 v3 v4 v5 v6 v7 v8
10v1 v2
10v1 v3
50v2 v4
30v3 v5
40v3 v6
99v4 v5
2v4 v7
60v5 v7
80v6 v8
22v7 v8
70
拓撲排序 鄰接矩陣表示
time limit 1000ms memory limit 65536kb submit statistic discuss problem description 給定乙個有向圖,判斷該有向圖是否存在乙個合法的拓撲序列。input 輸入包含多組,每組格式如下。第一行包含兩個整數n,m,分別代表該...
C 拓撲排序(鄰接矩陣與鄰接表
博主新手,最近在學習拓撲排序,查閱網上資料發現有些難懂且很多方法的 不盡相同,於是就想著試試自己能不能寫出來,經過一段時間的嘗試,最終實現了拓撲排序,現在將自己的想法發表出來,可能有些瑕疵,希望各位看後不吝賜教 不知道是不是就是網上的方法,之前看網上的沒看懂.建立鄰接矩陣,輸入頂點數和邊數,初始化所...
拓撲排序 關鍵路徑(鄰接矩陣實現)
include include define inf 65535 using namespace std int map 110 110 構建鄰接表 int ear 110 in 110 late 110 構建最早出發表和最晚完成表 int n,m,max stackturn 存放拓撲排序的順序,最...