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

2021-10-07 15:23:23 字數 428 閱讀 3816

平衡二叉樹:首先是一棵二叉查詢樹。帶有平衡條件:每個結點的左右子樹的高度之差的絕對值(平衡因子)最多為1。

紅黑樹:雖然本質上是一棵二叉查詢樹,但它在二叉查詢樹的基礎上增加了著色和相關的性質使得紅黑樹相對平衡,從而保證了紅黑樹的查詢、插入、刪除的時間複雜度最壞為o(log n)。

還具體下列的特性:

節點是紅色或者黑色

根節點是黑色(黑土地孕育黑樹根, )

每個葉子的節點都是黑色的空節點(null)

每個紅色節點的兩個子節點都是黑色的。(沒有兩個相鄰的紅色節點,紅色節點不能有紅色父節點或紅色子節點,並沒有說不能出現連續的黑色節點)

從任意節點到其每個葉子的所有路徑都包含相同的黑色節點。

紅黑樹在二叉排序樹的基礎上增加了著色和相關的性質使得紅黑樹相對平衡,從而保證了紅黑樹的查詢、插入、刪除的時間複雜度最壞為o(logn)。

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

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

平衡二叉樹 紅黑樹

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

紅黑樹與平衡二叉樹

性質1.節點是紅色或黑色。性質2.根節點是黑色。性質3.每個葉子節點都是黑色的空節點 nil節點 性質4 每個紅色節點的兩個子節點都是黑色。從每個葉子到根的所有路徑上不能有兩個連續的紅色節點 性質5.從任一節點到其每個葉子的所有路徑都包含相同數目的黑色節點。這些約束強制了紅黑樹的關鍵性質 從根到葉子...