1. 程式人生 > >幾種特殊的二叉樹

幾種特殊的二叉樹

1、二叉排序樹

二叉排序樹或者是一棵空樹,或者是具有如下性質的二叉樹。
①若它的左子樹非空,則左子樹上所有結點的值均小於根結點的值;
②若它的右子樹非空,則右子樹上所有結點的值均大於(或大於等於)根結點的值。
③它的左右子樹也分別是二叉排序樹。

2、平衡二叉排序樹(AVL樹)

一棵平衡二叉排序樹或者是具有下列性質的二叉排序樹:
①左子樹與右子樹的高度之差的絕對值小於等於1;
②左子樹和右子樹也是平衡二叉排序樹。

3、B樹

一棵B樹是一棵平衡的m路查詢樹,它或者是空樹,或者是滿足如下性質的樹:
①樹中每個結點最多有m棵子樹;
②根結點至少有兩棵子樹;
③除根結點之外的所有非葉結點至少有「m/2棵子樹。
④所有葉結點出現在同一層上,並且不含資訊,通常稱為失敗結點。失敗結點為虛結點,在B樹中並不存在,指向它們的指標為空指標。引入失敗結點是為了便於分析B樹的查詢效能。

4、B+樹

B樹是一種平衡的m路查詢樹,是組織和維護外存檔案系統的有效資料結構。
B+樹是B樹的一種變形樹,在檔案系統中應用的更為廣泛。

5、紅黑樹

一棵紅黑樹是滿足下面紅黑性質的二叉搜尋樹:
①每個結點或是紅色的,或是黑色的;
②根結點是黑色的;
③每個葉結點(NIL)是黑色的;
④如果一個結點是紅色的,則它的兩個子結點都是黑色的;
⑤對每個結點,從該結點到其所有後代葉結點的簡單路徑上,均包含相同數目的黑色結點。