紅黑樹右旋轉

紅黑樹右旋轉過程

紅黑樹的平衡
紅黑樹首先是一棵二叉查找樹,它每個結點都被標上了顏色(紅色或黑色),紅黑樹滿足以下5個性質:

1、 每個結點的顏色只能是紅色或黑色。

2、 根結點是黑色的。

3、 每個葉子結點都帶有兩個空的黑色結點(被稱爲黑哨兵),如果一個結點n的只有一個左孩子,那麼n的右孩子是一個黑哨兵;如果結點n只有一個右孩子,那麼n的左孩子是一個黑哨兵。

4、 如果一個結點是紅的,則它的兩個兒子都是黑的。也就是說在一條路徑上不能出現相鄰的兩個紅色結點。

5、 對於每個結點來說,從該結點到其子孫葉結點的所有路徑上包含相同數目的黑結點。

紅黑樹的這5個性質中,第3點是比較難理解的,但它卻非常有必要。我們看圖1中的左邊這張圖,如果不使用黑哨兵,它完全滿足紅黑樹性質,結點50到兩個葉結點8和葉結點82路徑上的黑色結點數都爲2個。但如果加入黑哨兵後(如圖1右圖中的小黑圓點),葉結點的個數變爲8個黑哨兵,根結點50到這8個葉結點路徑上的黑高度就不一樣了,所以它並不是一棵紅黑樹。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章