平衡二叉查詢樹:紅黑樹

ru-willow發表於2020-12-05

平衡二叉查詢樹

1、什麼是平衡二叉查詢樹?

二叉樹中任意一個節點的左右子樹的高度相差不能大於 1。從這個定義來看,上一節我們講的完全二叉樹、滿二叉樹其實都是平衡二叉樹,但是非完全二叉樹也有可能是平衡二叉樹。
在這裡插入圖片描述
平衡二叉查詢樹中“平衡”的意思,其實就是讓整棵樹左右看起來比較“對稱”、比較“平衡”,不要出現左子樹很高、右子樹很矮的情況。這樣就能讓整棵樹的高度相對來說低一些,相應的插入、刪除、查詢等操作的效率高一些。

2、如何定義一棵“紅黑樹”

紅黑樹中的節點,一類被標記為黑色,一類被標記為紅色。除此之外,一棵紅黑樹還需要滿足這樣幾個要求:
① 根節點是黑色的;
② 每個葉子節點都是黑色的空節點(NIL),也就是說,葉子節點不儲存資料;
③ 任何相鄰的節點都不能同時為紅色,也就是說,紅色節點是被黑色節點隔開的;
④ 每個節點,從該節點到達其可達葉子節點的所有路徑,都包含相同數目的黑色節點;
在這裡插入圖片描述

相關文章