資料結構 二叉排序樹

2021-04-13 21:26:48 字數 611 閱讀 6224

二叉排序樹是一種特殊結構的二叉樹,它作為一種表的組織手段,通常被稱為

樹表。可以作為一種排序和檢索的手段。

定義 二叉排序樹或是空樹,或是具有下述性質的二叉樹:其左子樹上所有結點的資料值均小於根結點的資料值;右子樹上所有結點的資料值均大於或等於根結點的資料值。左子樹和右子樹又各是一棵二叉排序樹。

對二叉排序樹,若按中序遍歷就可以得到由小到大的有序序列。如上圖,中序遍歷得:

二叉排序樹的生成

對任意一組資料元素序列,要生成一棵二叉排序樹的過程為:

(1)令r1為二叉樹的根;

(2)若r2

1,令r2為r1左子樹的根結點,否則r2為r1右子樹的根結點;

(3)對r3,...,rn結點的插入方法同上。

例,資料元素序列,其生成二叉排序樹的過程如下:

二叉排序樹中結點的刪除

要求刪除乙個結點後的二叉樹仍是一棵二叉排序樹。演算法思想,分以下幾種情況考慮:

(1)被刪除的結點是葉子結點,則只需修改其雙親結點的指標既可;

(2)被刪除結點p只有左子樹pl或右子樹pr,此時只要使左子樹pl或右子樹pr成為p雙親結點q的左子樹或右子樹即可。

(3)若被刪除結點p的左、右子樹均非空,有兩種做法:

資料結構 二叉排序樹

二叉排序樹 binarysorttree 具有下列性質的二叉樹 1 若左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 2 若右子樹不空,則右子樹上所有結點的值均大於它的根結點的值 3 左 右子樹也分別為二叉排序樹 include includeusing namespace std type...

資料結構 二叉排序樹

如果需要乙個滿足 支援排序性 高效插入 刪除操作 高效查詢的資料結構,怎麼做?先看看一些簡單的資料結構 1 排序順序表 陣列 查詢可以採用折半查詢演算法,時間效率為o log2n 插入 刪除操作的時間複雜度為o n 資料量大時,效率太低。2 排序單鏈表 只能採用順序查詢,時間複雜度為o n 不能採用...

資料結構 二叉排序樹

二叉排序樹或者是一棵空樹,或者是具有下列性質的二叉樹 1 若左子樹不空,則左子樹上所有結點的值均小於或等於它的根結點的值 2 若右子樹不空,則右子樹上所有結點的值均大於或等於它的根結點的值 3 左 右子樹也分別為二叉排序樹 根據二叉樹的定義,左子樹節點值 根節點值 右子樹節點值。所以對二叉排序樹進行...