雙向佇列(Double-Ended Queue) 雙向佇列是一般話的佇列或堆疊。跟佇列的「先進先出FIFO」,和堆疊「後進後出LIFO」比起,雙向佇列可以從最前...
樹狀演算法 前面有講過樹的基本概念和結構,這邊會講二元樹的應用,樹狀演算法大都是用鏈結串列來處理,鏈結串列的指標用來處理樹相當方便,只需改變指標即可,也可用陣列...
鏈結串列實作二元樹 鏈結串列實作二元樹就是用鏈結串列來儲存二元樹,好處是對於節點增加與刪除較容易,但卻不好找到父節點,除非在每一個節點增加一個副欄位。 stru...
今天繼續二元樹 二元樹節點搜尋 二元樹在建立過程是依據左子樹<樹根<右子樹的原則,只需從樹根出發比較鍵值,如果比樹根大就往右,否則往左而下,直到相等...
二元樹節點刪除 二元樹刪除可分為幾種狀況: ❶ 刪除的節點為樹葉:只要將相連的父節點指向Null即可。 ❷ 刪除的節點只有一顆子樹 將其右指標欄放到其父節點的...
圖形演算法 前面也有介紹到圖形的定義,這邊會來介紹圖形的演算法。 圖形的走訪 前幾天的樹追蹤是拜訪樹的每一個節點一次,用的方法有前中後序法,那圖形追蹤的定義,就...
擴張樹(Spanning Tree) 擴張樹又稱花費樹或值樹,一個圖形的擴張樹是以最少的邊來連結圖形中所有的頂點,且不造成循環。在樹的邊上加上一個權重值,這個圖...
Kruskal's alogrithm Kruskal 又稱K氏法,是將各邊依權值大小由小到大排列,接著從權值最低的邊線開始架構最小成本擴張樹,如果加入的邊線會...
圖形最短路徑法 最短路徑是圖形的經典演算法,在一個有像圖形G=(V,E)中,G每一個邊都有一個比例常數W與之對應,想要求G圖形中某一個頂點V0到其他頂點的最少總...
Floyd algorithm 相較於Dijkstra的方法只能求出某一點到其他頂點的最短距離,如果要求出圖形中任意兩點甚至所有頂點間最短的距離,就要用Floy...