演算法解析(內容來自
《大話資料結構》
這本書不錯哦):
**如下:
1 #include "示例結果(就是上面那幾張的示例):stdafx.h
"2 #include3 #include
4using
namespace
std;
5#define maxsize 100
6#define error 0
7#define ok 1
8#define infinity 65535
9 typedef int
status;
10 typedef struct arcnode //
邊表結點
11arcnode;
15 typedef struct vnode //
頂點表結點
16vnode, adjlist[maxsize]; //
adlist表示鄰接表型別
21 typedef struct
//鄰接表
22algraph;
2627 typedef struct
28amgraph;
3334
void createudn(amgraph &g) //
採用鄰接矩陣表示法,建立無向網&g
3544
for (i = 0; i < g.vexnum; i++) //
初始化鄰接矩陣,編的權值均為極大值maxint
45for (j = 0; j < g.vexnum; j++)
46 g.arcs[i][j] = 0
;47 cout << "
請輸入邊的資訊(輸入順序:連線點1編號,連線點2編號):
"<
48for (int k = 0; k < g.arcnum; k++) //
構造鄰接矩陣
4953}54
55void createalgraph(amgraph g, algraph &gl)
5667
68for (i = 0; i//
建立邊表
6980}81
}82}83
84status topologicalsort(algraph gl)
85106
}107 cout <
108if (count
109return
error;
110else
111return
ok;112
}113
114int
main()
115
資料結構之拓撲排序
乙個簡單的求拓撲排序思路是 先找出任意乙個沒有入邊的頂點。然後列印出該頂點,並將它和它的邊一起從圖中刪除。然後,我們對圖的其餘部分採用同樣的方法處理。相應的我們可以定義乙個indegree 入度陣列 儲存所有頂點的入度。具體實現如下 鄰接表 define crt secure no warnings...
資料結構之拓撲排序
拓撲排序 topological order 是指,將乙個有向無環圖 directed acyclic graph簡稱dag 進行排序進而得到乙個有序的線性序列。這樣說,可能理解起來比較抽象。下面通過簡單的例子進行說明!例如,乙個專案包括a b c d四個子部分來完成,並且a依賴於b和d,c依賴於d...
資料結構之拓撲排序
感覺重點就是鄰接表的建立和tp toposort 函式中的乙個變數 的變化很奇妙,相當於是乙個靜態指標的用法。include include include include include include include include include define inf 0x3f3f3f3f d...