⑴ 什麼是逆拓撲有序
1. 輸入e條弧,建立AOE-網的存儲結構。
2. 拓撲排序,並求得ve[]。從源點V0出發,令ve[0]=0,按拓撲有序求其餘各頂點的最早發生時間ve[i]。如果得到的拓撲有序序列中頂點個數小於網中頂點數n,則說明網中存在環,不能求關鍵路徑,演算法終止;否則執行步驟3。
3. 拓撲逆序,求得vl[]。從匯點Vn出發,令vl[n-1] = ve[n-1],按逆拓撲有序求其餘各頂點的最遲發生時間vl[i]。
4. 求得關鍵路徑。根據各頂點的ve和vl值,求每條弧s的最早開始時間e(s)和最遲開始時間l(s)。若某條弧滿足條件e(s) = l(s),則為關鍵活動。
為了能按逆序拓撲有序序列的順序計算各個頂點的vl值,需記下在拓撲排序的過程中求得的拓撲有序序列,這就需要在拓撲排序演算法中,增設一個棧,以記錄拓撲有序序列,則在計算求得各頂點的ve值之後,從棧頂到棧底便為逆拓撲有序序列。