二叉檢索樹

二叉檢索樹或者是一顆空樹;或者是具有下列性質的二叉樹:對於任何一個結點,設其值為K,則該結點的左子樹(若不空)的任意一個結點的值都小於K;該結點的右子樹(若不空)的任意一個結點的值都大於或等於K;而且它的左右子樹也分別為二叉檢索樹。

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

相關詞條

熱門詞條

聯絡我們