
二、給定 T為一個以陣列表示的二元搜尋樹(binary search tree)。
若有一些介於 1及1,000 的正整數被儲存於 T,且要搜尋數字 364,請
說明搜尋過程是否有可能為 3, 400, 388, 220, 267, 383, 382, 279, 364?
(5分)
若有一些介於 1及1,000 的正整數被儲存於 T,且要搜尋數字 364,請
說明搜尋過程是否有可能為 926, 203, 912, 241, 913, 246, 364?(5分)
若對 T進行前序遍歷(pre-order traversal)的結果為 30, 20, 10, 15, 25, 23, 39,
35, 42。請說明若以後序遍歷(post-order traversal),結果為何。(5分)
若對T進行後序遍歷(post-order traversal)的結果為25, 20, 34, 37, 31, 49,
46, 57, 60, 52, 41。請說明若以中序遍歷(in-order traversal),結果為何。
(5分)
請說明可將二元搜尋樹 T轉換為最小堆積(min heap)的程序為何?(10 分)
三、給定以相鄰矩陣(adjacency matrix)表示的圖 G,矩陣中的數字為相鄰兩
節點間的距離,若空白則代表兩節點不相鄰。
圖G
請說明若以 Kruskal’s 演算法建立最小生成樹(minimum spanning tree)
的過程中,依序被加入生成樹的邊。(5分)
請說明若以 Prim’s 演算法建立最小生成樹(minimum spanning tree)的
過程中,依序被加入生成樹的邊。(5分)
請說明 Dijkstra’s 演算法的用途,並說明該演算法應用上的限制。(10 分)
請說明將圖 G從f節點開始執行 Dijkstra’s 演算法的過程並顯示節點加
入的順序。(10 分)