紅黑樹(RBT tree)詳解
阿新 • • 發佈:2022-04-05
紅黑樹(Red Black tree)
一、紅黑樹的一些性質
1、紅黑樹是一顆自平衡的二叉查詢樹,通過給每個節點相應的顏色位(Red or Black)來保證整個的樹的平衡。
2、紅黑樹在插入和刪除時不像AVL樹那樣經常的需要調整,平衡性要求沒有AVL樹高。
3、根節點必須為黑色,紅節點的孩子必須為黑色。
紅黑樹示例:
4、紅黑樹中空指標也是節點。
5、對於任何一個節,從該節點到其孩子中都包括相同數目的黑色節點,這點是保證平衡性的重要條件。
6、空指標代表的也是黑色節點。
7、由上可知紅黑樹的高度對多為:log⑵(n+1)。
8、紅黑樹的查詢效率和AVL差不多。
9、Black Height:即經過多少個黑色節點
10、1)任何一個節點的左子樹至少有個內部節點(internal nodes)。
原二叉樹節點,叫做 internal node。
2)任何一個節點 x 的 bh(x)>=h(x)。
二、紅色樹的插入
1、根節點初始化為黑色
2、非根節點插入預設為紅色
3、如果插入的節點的父節點是紅色,就把父節點和其兄弟節點都換成黑色節點,再看父親節點的父親節點是不是根節點,如果不是,也需要重新著色。
4、如果其沒有兄弟節點,就需要對其進行旋轉,旋轉方法參考AVL的LL、RR、LR、RL,然後重新進行著色。5)
5、重複這個過程
原視訊:2021年最好懂的紅黑樹