圖_拓撲排序
一個不存在回路的AOV網(wǎng)盼铁,可以將其應(yīng)用在各種各樣工程項目的流程圖中乾颁。例如:讓你實現(xiàn)一個畫流程圖的軟件杜漠,那你在內(nèi)存中怎么組織流程圖呢?扇商?
也就是保證工程項目能夠順利進行
AOV網(wǎng)
在一個表示工程
的有向圖中,定點表示活動,弧表示活動之間的優(yōu)先關(guān)系
拓撲排序
其實就是對一個有向圖(包含AOV)構(gòu)造拓撲序列
的過程
算法原理
數(shù)據(jù)結(jié)構(gòu)中in表示該定點的入度类缤,因為是AOV網(wǎng)不撑,因此從入度為0的點開始
- 找到所有入度為0的頂點(p點)文兢,入棧
- 讀棧,從圖中刪除p點焕檬,然后把與p相連的弧尾頂點in值減1姆坚,判斷這些頂點有無入度(in的值)為0者,有則入棧
- 讀棧取出一個新的頂點实愚,急需執(zhí)行步驟2兼呵,直到全部頂點操作完畢
例如:下面的圖第一次就是找到三個頂點入度為0,全部入棧