二叉排序樹 平衡二叉樹 紅黑樹概念

2021-08-20 22:26:37 字數 600 閱讀 5239

二叉排序樹:

1、如果它左子樹非空,則左子樹上所有元素的值均小於根元素的值

2、如果它右子樹非空,則右子樹上所有元素的值均大於根元素的值

3、左,右子樹本身又各是一棵二叉排序樹

平衡二叉樹:

一棵二叉樹中每個結點的左、右子樹的高度至多相差1,則此二叉樹為平衡二叉樹

(平衡因子:|左子樹高度-右子樹高度| <= 1  即平衡因子為1、0、-1 )

紅黑樹:

每個結點要麼是紅的要麼是黑的。

根結點是黑的。

每個葉結點(葉結點即指樹尾端nil

指標或null

結點)都是黑的。

如果乙個結點是紅的,那麼它的兩個兒子都是黑的。

對於任意結點而言,其到葉結點樹尾端nil

指標的每條路徑都包含相同數目的黑結點。 

紅黑樹的查詢、插入、刪除的時間複雜度最壞為o(log n)

平衡二叉樹 紅黑樹

顏色調整,第一種情況uncle存在且為紅色,第二種和第三種情況,uncle不存在 uncle存在且為黑色,先處理第三種情況,針對parent進行左單旋。test.cpp include using namespace std enum colour template struct rbtreenod...

二叉查詢樹 平衡二叉樹 紅黑樹

先看幾個基本概念 樹 由根出發,指向n個孩子,孩子再指向孫子。這樣一種資料結構 二叉樹 每個接點最多有兩個孩子的樹 二叉查詢樹 每個結點的左子樹 結點 右子樹 平衡二叉樹 每個結點左右子樹的高度差不大於1 紅黑樹 從任一節點到其每個葉子的所有簡單路徑 都包含相同數目的黑色節點。當然還有其它性質 幾點...

二叉查詢樹 平衡二叉樹 紅黑樹

平衡二叉樹 首先是一棵二叉查詢樹。帶有平衡條件 每個結點的左右子樹的高度之差的絕對值 平衡因子 最多為1。紅黑樹 雖然本質上是一棵二叉查詢樹,但它在二叉查詢樹的基礎上增加了著色和相關的性質使得紅黑樹相對平衡,從而保證了紅黑樹的查詢 插入 刪除的時間複雜度最壞為o log n 還具體下列的特性 節點是...