紅黑樹:
1.)帶節點顏色屬性的二叉搜索樹
2.)確保樹的高度爲
紅黑樹屬性:
- 每個節點要麼是紅色,要麼是黑色
- 每個葉子節點(一定是NULL指針)一定是黑色
- 這意味着每個“真正”的節點都有兩個孩子
- 紅色節點的兩個孩子都是黑色
- 這意味着樹的任何路徑上不可能存在兩個連續的紅色節點
- 從任意某個節點出發,到所有能到達的葉子節點的路徑上的黑色節點數量相等
- 根節點是黑色
黑色節點的高度:
黑色節點的高度的定義爲:黑色節點到葉子節點的路徑長度
一個高度爲
可證明:一個擁有
證明:
紅黑樹最差情況下的耗時
紅黑樹示例:
如何插入新的節點:
如何插入新的節點:
節點
節點
所有,只能重新定義樹的顏色了:
如何插入新的節點:
紅黑樹:旋轉
旋轉
旋轉示例
相對於