阿摩線上測驗 登入

申論題資訊

試卷:106年 - 106 一般警察特種考試_二等_刑事警察人員犯罪分析組:計算機概論(包括計算機結構、資料結構、程式設計)#62390
科目:計算機概論
年份:106年
排序:0

題組內容

三、給予依序如下資料 40, 20, 60, 10, 30, 50, 70:

申論題內容

⑵承題⑴,執行二元樹的何種運算,可將此串資料做排序?(10 分)

詳解 (共 1 筆)

詳解 提供者:hchungw
要對二元搜尋樹(Binary Search Tree, BST)中的資料進行排序,可以執行中序遍歷(In-order Traversal)操作。中序遍歷首先遍歷左子樹,然後訪問根節點,最後遍歷右子樹。當對一個二元搜尋樹進行中序遍歷時,訪問的節點序列將按照鍵值的升序排列。
對於給定的二元搜尋樹:

    40
   /  \
 20    60
/ \    / \
10 30 50  70
執行中序遍歷的步驟如下:
遍歷 40 的左子樹(20)。
遍歷 20 的左子樹(10)。
由於 10 沒有左子樹,訪問 10。
返回並訪問 20。
遍歷 20 的右子樹(30)。
訪問 30。
完成 20 的遍歷。
返回並訪問 40。
遍歷 40 的右子樹(60)。
遍歷 60 的左子樹(50)。
訪問 50。
返回並訪問 60。
遍歷 60 的右子樹(70)。
訪問 70。
完成 60 的遍歷。
因此,中序遍歷的結果是:10, 20, 30, 40, 50, 60, 70。
這個序列就是原始資料的排序結果。中序遍歷是二元搜尋樹進行排序的關鍵操作,因為它按照從小到大的順序訪問所有節點。