拓撲排序C 實現

2021-09-26 15:11:29 字數 1027 閱讀 5003

aov(activity on vertex network)網:

活動在頂點上的網,是一種頂點表示活動,邊表示先後順序的有向無環圖,可以用來表示產品生產流等。

拓撲排序:

將有向無環圖的所有頂點排列成乙個序列,序列中的頂點滿若一對頂點u和v存在路徑u->v,則u一定出現再v之前。

**:略…有時間再補充吧

步驟:

**:

#include

using namespace std;

const

int maxn =

10010

;vectorint>

>

g(maxn, vector<

int>

(maxn,0)

);vector<

int>

indegree

(maxn,0)

;vector<

int>

topologic

(vectorint>

>g, vector<

int>indegree,

int n)

while

(!q.

empty()

)}}return res;

}int

main()

}for

(int i=

0;i++i)

cout<<<

" "

int> res;

res =

topologic

(g, indegree, n)

;for

(int i=

0; isize()

;++i)

cout<<<

" ";

return0;

}/*40 1 1 0

0 0 0 1

0 1 0 1

0 0 0 0

*/

略.

..有時間再補充

拓撲排序 C實現

接著上一次的c 實現,這次用c語言寫一遍。主要是多了棧stack的實現部分。參考了 資料結構 教材。如下 include include include include 圖的鄰接表儲存表示 define max vertex num 20 typedef struct arcnode arcnode...

拓撲排序(C語言實現)

拓撲排序可以將乙個有向無環圖轉換為乙個線性序列。它也是判定乙個有向圖是否是無環的方法之一。如何進行拓撲排序,方法如下 1 從有向圖中選取乙個 沒有前驅 入度為 0 的 頂點,並輸出之 2 從有向圖中刪去此頂點以及所有以它為尾的 弧 弧頭頂點的入度減 1 重複上述兩步,直至圖空,或者圖不空但找不到 無...

C 語言實現 拓撲排序

1 拓撲排序的概念 對乙個1.在有向圖中選乙個沒有前驅的頂點並且輸出 2.從圖中刪除該頂點和所有以它為尾的弧 白話就是 刪除所有和它有關的邊 3.重複上述兩步,直至所有頂點輸出,或者當前圖中不存在無前驅的頂點為止,後者代表我們的有向圖是有環的,因此,也可以通過拓撲排序來判斷乙個圖是否有環。3 拓撲排...