1. 定義及性質
二叉檢索樹或者是一顆空樹;或者是具有下列性質的二叉樹:對於任何一個結點,設其值為K,則該結點的左子樹(若不空)的任意一個結點的值都小於K;該結點的右子樹(若不空)的任意一個結點的值都大於或等於K;而且它的左右子樹也分別為二叉檢索樹。
二叉檢索樹的性質:按照中序遍歷將各結點列印出來,得到的是按照由小到大的排列。
檢索n二叉檢索樹的效率就在於只需檢索二個子樹之一。
-從根結點開始,在二叉檢索樹中檢索值K。
-如果根結點儲存的值為K,則檢索結束。
-如果K小於根結點的值,則只需檢索左子樹。
-如果K大於根結點的值,就只檢索右子樹。
這個過程一直持續到K被找到或者我們遇上了一個葉子節點。
如果遇上樹葉仍沒有發現K,那么K就不在該二叉檢索樹中。
2. 二叉檢索樹類定義
3. 二叉檢索樹的實現
4. 二叉檢索樹結點的刪除
對於二叉檢索樹,刪除一個結點,相當於刪除有序序列中的一個記錄,要求刪除後能保持二叉檢索樹的排序特性,並且樹高變化較小。
(1)找到值為val的結點rt
(2)rt為葉,可以直接刪除
(3)rt左空或右空,可以讓它的右子樹或左子樹直接代替原rt
(4)rt左右都不空,可以讓右子樹中的最小值代替原rt
