基礎拓撲排序 C語言實現

2021-10-05 21:03:36 字數 858 閱讀 4349

演算法步驟:

(1)根據鄰接矩陣統計每個頂點的入度,統計結果存在mark中;

(2)在mark中尋找為0的頂點i,找到後將mark[i]–,並且更新與該點相關的頂點的mark陣列;

(3)重複步驟(2),直到所有點的mark均為-1。

例項以及**

//全域性變數,圖的鄰接矩陣以及記錄陣列mark

int a[6]

[6]=

,,,,

,};int mark[6]

=,number=

0;

//初始化資料,進行頂點入度的統計

void

initial()

//處理乙個mark為0的頂點,即頂點入度為0

void

delete()

printf

("%d "

,i);

for(j=

0;j<

6;j++)if

(a[i]

[j]>0)

mark[j]--;

//處理刪除頂點相關的頂點

}

//主函式

intmain()

執行結果:

拓撲排序(C語言實現)

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

C 語言實現 拓撲排序

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

用C語言實現拓撲排序

aov網 在乙個表示工程的有向圖中,頂點表示活動 邊表示活動間先後關係的有向圖稱做頂點活動網 activity on vertex network 在某些活動中,一些子活動必須要在某個特定的子活動完成後才能進行,像這樣的工程圖必須是無環的。如果有向圖的所有頂點都輸出,說明此圖沒有環,否則就有環 拓撲...