『壹』 數據結構用什麼方法來判斷有向圖是否存在迴路
數據結構中用拓撲排序來判斷有向圖是否存在迴路。
用頂點表示活動、邊表示活動間先後關系的有向圖稱做頂點活動網(AOV網)。一個AOV網應該是一個有向無環圖,即不應該帶有迴路,因為若帶有迴路,則迴路上的所有活動都無法進行。
在AOV網中,若不存在迴路,則所有活動可排列成一個線性序列,使得每個活動的所有前驅活動都排在該活動的前面,數據結構中把此序列叫做拓撲序列,由AOV網構造拓撲序列的過程叫做拓撲排序。
綜上,若一個有向圖中存在拓撲排序,則有向圖中不存在迴路。
(1)什麼演算法看是否有迴路擴展閱讀:
在有向圖進行拓撲排序的演算法思想:
由AOV網構造拓撲序列的拓撲排序演算法主要是循環執行以下兩步,直到不存在入度為0的頂點為止。
1、選擇一個入度為0的頂點並輸出之;
2、從網中刪除此頂點及所有出邊。
循環結束後,若輸出的頂點數小於網中的頂點數,則輸出「有迴路」信息,否則輸出的頂點序列就是一種拓撲序列。
參考資料來源:網路-拓撲排序
參考資料來源:網路-有向圖
『貳』 克魯斯卡爾演算法是怎樣判斷是否構成了迴路
使用遍歷方法,同時存儲他們的父親節點,如果父親節點不一樣,就說明有迴路