建立二元搜尋樹(Binary Search Tree, BST)的過程是逐個將給定的資料插入到樹中,保證對於樹中的任意節點 X,其左子樹中的所有節點的值都小於 X 的值,而其右子樹中的所有節點的值都大於 X 的值。我們按照給定的資料順序來建樹:40, 20, 60, 10, 30, 50, 70。
插入 40:由於樹是空的,40 成為根節點。
插入 20:20 小於 40,所以 20 成為 40 的左子節點。
插入 60:60 大於 40,所以 60 成為 40 的右子節點。
插入 10:10 小於 40,向左走;10 小於 20,向左走,且由於 20 沒有左子節點,10 成為 20 的左子節點。
插入 30:30 小於 40,向左走;30 大於 20,向右走,且由於 20 沒有右子節點,30 成為 20 的右子節點。
插入 50:50 大於 40,向右走;50 小於 60,向左走,且由於 60 沒有左子節點,50 成為 60 的左子節點。
插入 70:70 大於 40,向右走;70 大於 60,向右走,且由於 60 沒有右子節點,70 成為 60 的右子節點。
因此,建立的二元搜尋樹如下所示:
markdown
Copy code
40
/ \
20 60
/ \ / \
10 30 50 70
這個二元搜尋樹保持了BST的所有特性:每個節點的左子樹只包含小於節點本身的值,每個節點的右子樹只包含大於節點本身的值。