平衡二叉查詢樹:紅黑樹
平衡二叉查詢樹
1、什麼是平衡二叉查詢樹?
二叉樹中任意一個節點的左右子樹的高度相差不能大於 1。從這個定義來看,上一節我們講的完全二叉樹、滿二叉樹其實都是平衡二叉樹,但是非完全二叉樹也有可能是平衡二叉樹。
平衡二叉查詢樹中“平衡”的意思,其實就是讓整棵樹左右看起來比較“對稱”、比較“平衡”,不要出現左子樹很高、右子樹很矮的情況。這樣就能讓整棵樹的高度相對來說低一些,相應的插入、刪除、查詢等操作的效率高一些。
2、如何定義一棵“紅黑樹”
紅黑樹中的節點,一類被標記為黑色,一類被標記為紅色。除此之外,一棵紅黑樹還需要滿足這樣幾個要求:
① 根節點是黑色的;
② 每個葉子節點都是黑色的空節點(NIL),也就是說,葉子節點不儲存資料;
③ 任何相鄰的節點都不能同時為紅色,也就是說,紅色節點是被黑色節點隔開的;
④ 每個節點,從該節點到達其可達葉子節點的所有路徑,都包含相同數目的黑色節點;
相關文章
- Java實現紅黑樹(平衡二叉樹)Java二叉樹
- 平衡查詢樹
- 滿二叉樹、完全二叉樹、平衡二叉樹、二叉搜尋樹(二叉查詢樹)和最優二叉樹二叉樹
- 資料結構之樹結構概述(含滿二叉樹、完全二叉樹、平衡二叉樹、二叉搜尋樹、紅黑樹、B-樹、B+樹、B*樹)資料結構二叉樹
- 二叉查詢樹
- 手擼二叉樹——二叉查詢樹二叉樹
- Python 樹表查詢_千樹萬樹梨花開,忽如一夜春風來(二叉排序樹、平衡二叉樹)Python排序二叉樹
- 平衡二叉樹,B樹,B+樹二叉樹
- 平衡二叉樹二叉樹
- 紅黑樹
- 排序二叉樹和平衡二叉樹排序二叉樹
- 二叉查詢樹和笛卡爾樹
- 手擼二叉樹——AVL平衡二叉樹二叉樹
- 平衡二叉樹(AVL)二叉樹
- 平衡二叉樹(AVL樹)和 二叉排序樹轉化為平衡二叉樹 及C語言實現二叉樹排序C語言
- 二叉查詢樹【二叉排序樹】構建和查詢演算法 PHP 版排序演算法PHP
- BST(二叉搜尋樹)、AVL樹、紅黑樹、2-3樹、B樹、B+樹、LSM樹、Radix樹比較
- 資料結構與演算法-二叉查詢樹平衡(DSW)資料結構演算法
- 資料結構與演算法-二叉查詢樹平衡(AVL)資料結構演算法
- 二叉樹路徑查詢二叉樹
- Amazing tree —— 二叉查詢樹
- 平衡樹和二叉樹的區別二叉樹
- 平衡二叉樹(AVL樹),原來如此!!!二叉樹
- 十三、Mysql之平衡二叉樹(AVL樹)MySql二叉樹
- 資料結構和演算法-二叉樹,AVL,紅黑樹資料結構演算法二叉樹
- 資料結構之MySQL獨愛B+樹(二叉樹、AVL樹、紅黑樹、B樹對比)資料結構MySql二叉樹
- 二叉查詢樹的插入刪除查詢
- 5分鐘瞭解二叉樹之二叉查詢樹二叉樹
- 110. 平衡二叉樹二叉樹
- 瞭解紅黑樹的起源,理解紅黑樹的本質
- 雜湊,二叉樹,紅黑樹,B樹,B+樹,LSM樹等資料結構做索引比較二叉樹資料結構索引
- 紅黑樹左右旋
- 淺談紅黑樹
- 紅黑樹詳解
- 從紅黑樹的本質出發,徹底理解紅黑樹!
- 自動平衡二叉樹的構建-AVL樹二叉樹
- 二叉堆、BST 與平衡樹
- LeetCode-110-平衡二叉樹LeetCode二叉樹