二叉排序樹,又叫二叉查詢樹,它或者是一棵空樹;或者是具有以下性質的二叉樹:
1. 若它的左子樹不空,則左子樹上所有節點的值均小於它的根節點的值;
2. 若它的右子樹不空,則右子樹上所有節點的值均大於它的根節點的值;
3. 它的左右子樹也分別為二叉排序樹。
1.1 排序二叉樹之插入操作
已知乙個關鍵字值為key的結點s,若將其插入到二叉排序樹中,只要保證插入後仍符合二叉排序樹的定義即可。插入可以用下面的方法進行:
(1)若二叉排序樹是空樹,則key成為二叉排序樹的根;
(2)若二叉排序樹非空,則將key與二叉排序樹的根進行比較。如果key的值等於根結點的值,則停止插入;如果key的值小於根結點的值,則將key插入左子樹,如果key的值大於根結點的值,則將key插入右子樹。
(3)重複步驟2,直到找到合適的插入位置。
1.2 排序二叉樹之刪除操作
當程式從排序二叉樹中刪除乙個節點之後,為了讓它依然保持為排序二叉樹,程式必須對該排序二叉樹進行維護。維護可分為如下幾種情況:
(1)被刪除的節點是葉子節點,則只需將它從其父節點中刪除即可。
(2)如果待刪除節點左子樹存在右子樹不存在,或者左子樹不存在右子樹存在。直接將其子樹中存在的一邊候補上來即可。
(3)若被刪除節點 p 的左、右子樹均非空,有兩種做法:
1.4 排序二叉樹之旋轉操作
以pivot為軸心向左旋轉--左旋
以pivot為軸心向右旋轉--右旋
二叉排序樹BST
二叉排序樹 binary sort tree 又稱二叉查詢樹 binary search tree 亦稱二叉搜尋樹。二叉排序樹的性質 左子樹上所有結點的值均小於或等於它的根結點的值 右子樹上所有結點的值均大於或等於它的根結點的值 左 右子樹也分別為二叉排序樹 如圖是乙個bst。有了這種性質,bst的...
BST(二叉排序樹)
二叉查詢樹 binary search tree 又 二叉搜尋樹,二叉排序樹 它或者是一棵空樹,或者是具有下列性質的二叉樹 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 若它的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值 它的左 右子樹也分別為二叉排序樹。查詢二叉搜尋樹 遞...
二叉排序樹 BST
二叉排序樹,又稱為二叉查詢樹或者二叉搜尋樹.二叉查詢樹為滿足以下條件的樹 1,若左子樹不為空,則左子樹上所有結點的值均小於根結點的值 2,若右子樹不為空,則右子樹上所有結點的值均大於根結點的值 3,它的左右子樹也分為二叉排序樹 插入操作 將待插入的新結點與當前結點進行比較,如果兩個結點的值相同,則表...