下載/瀏覽

Download Report

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