Transcript 下載/瀏覽
二元樹排序法(Binary Tree Sorting) • 依照鍵值輸入的順序建立二元樹 1. 第一筆資料鍵值視為樹根,依序輸入其餘鍵值並執 行步驟2的比較。 2.將鍵值與目前的子樹樹根鍵值作比較,若小於樹根 則置入左子樹,若大於樹根,則置入右子樹。 3. 當鍵值置入下一階層子樹時,若遇子樹樹根,則重 覆步驟2,若無節點可比較,則將此鍵值於此位置 建立一個節點。 4. 重覆步驟2、3直到所有鍵值皆輸入完畢。 • 中序走訪 – 建立好二元樹之後,利用中序走訪即得排序的順序。 範例 排序的鍵值為 17 6 23 50 40 10 15 4 20 輸入鍵值 輸入17 建立二元樹過程 17 說 17為樹根 明 17 輸入6 6 < 17,6往左 6 17 輸入23 23 > 27,23往右 6 23 範例(續) 輸入鍵 值 建立二元樹過程 說 明 17 23 6 輸入50 50 50 > 17,50往右 50 > 23,50往右 17 6 23 50 輸入40 40 40 > 17,40往左 40 > 23,40往左 40 < 50,40往右 範例(續) 輸入鍵 值 建立二元樹過程 17 6 明 23 50 10 輸入10 說 40 10 < 17,10往左 10 > 6,10往右 17 23 6 輸入15 50 10 15 40 15 < 17,15往左 15 > 6,15往右 15 > 10,15往右 範例(續) 輸入鍵 值 建立二元樹過程 說 17 6 輸入4 23 50 10 4 明 15 40 4 > 17,4往左 4 > 6,4往左 17 6 輸入20 23 20 10 4 15 中序走訪:4 6 10 15 50 20 < 17,20往右 20 > 23,20往左 40 17 20 23 40 50 例﹕若鍵值為20, 10, 50, 30, 40, 60, 15, 8, 12, 請用二元樹排序法排序,寫出排序過程與結果。 解: (1) 建立二元樹 20 50 10 8 15 12 60 30 40 (2) 利用中序走訪 (1) 之二元樹,其結果為 8 10 12 15 20 30 40 50 60