拓撲序列:設g=(v,e)是乙個具有n個頂點的有向圖,v中的頂點序列:v1,v2,v3,…,vn,滿足若從頂點vi到vj有一條路徑,則在頂點序列中頂點vi比在頂點vj之前。我們稱這樣的頂點序列為乙個拓撲序列。
**拓撲排序:**就是對乙個有向圖構造拓撲序列的過程。
演算法的實現是基於鄰接表的儲存結構。
**思想:
1 定義乙個棧(stack)儲存沒有入度的頂點序號,定義top指向棧頂,定義count記錄輸出的頂點個數,以便判斷是否有環存在。
2 初始化stack,把所有入度為0的頂點入棧。
3 在棧不為空的情形下進行迴圈:出棧,並列印這個頂點資訊,count++。接下來通過迴圈訪問該頂點的鄰接表,並對弧頭的入度in減一,如果in等於0,則需要把該頂點入棧。
4 最後判斷count是否等於頂點數。
**如下:
int
topologicalsort
(graphverter g)
while
(top !=0)
}if(count < g.numvertexes)
return0;
else
return1;
}
「抽象」《大話資料結構》第七章 關鍵路徑
aoe網 在乙個表示工程的帶權有向圖中,用頂點表示事件 比如 發動機造好啦 用有向邊表示活動 比如 我正在造發動機 用邊上的權值表示活動的持續時間 比如 造發動機需要3天 這種有向圖的邊表示的活動的往,就是aoe網。這個網有乙個源點和乙個匯點,源點到匯點的最長路徑稱作關鍵路徑,關鍵路徑上的活動稱為關...
「抽象」《大話資料結構》第七章 最短路徑
對於網圖 最短路徑是指兩頂點之間經過的邊上權值之和最小的路徑 對於非網圖 最短路徑是指兩頂點之間邊數最小的路徑,因為邊的權值都為1 演算法思想 1 首先定義兩個陣列pathmatirx i shortpathtable k pathmatirx陣列它的序號 i 代表頂點序號,而對應的元素則是最短路徑...
資料結構第七章
平衡二叉樹 基本思想 在構造二叉排序樹的過程中,每插入乙個 結點時,首先檢查是否因插入而破壞了樹的平衡性,若是,則找出最小不平衡子樹,在保持二叉排序樹特 性的前提下,調整最小不平衡子樹中各結點之間的鏈 接關係,進行相應的旋轉,使之成為新的平衡子樹 平衡二叉樹 或者是一棵空的二叉排序樹,或者是具 有下...