數據結構之紅黑樹和2-3樹

數據結構之紅黑樹和2-3樹

一、紅黑樹

1、性質
(1)每個節點或者是紅色的,或者是黑色的
(2)根節點是黑色的
(3)每一個葉子節點(最後的空節點)是黑色的
(4)如果一個節點是紅色的,那麼它的孩子節點都是黑色的
(5)從任意一個節點到葉子節點,經過的黑色節點是一樣的
(6)對於紅黑樹,任何不平衡都會在三次旋轉內解決

2、性能總結
(1)對於完全隨機的數據,普通的二分搜索樹很好用,缺點是極端情況會退化爲鏈表或者高度不平衡
(2)查詢較多時,AVL樹很好用,紅黑樹犧牲了平衡性(2logn的高度)
(3)紅黑樹的統計性能更優(綜合增刪改查所有的操作)

3、顏色翻轉和右旋轉
(1)紅色節點意味着和父節點融合在一起,分裂後變成黑色
(2)父類變成紅色,子類變成黑色,顏色翻轉
(3)右旋轉:順時針旋轉

二、2-3樹

1、簡介
(1)滿足二分搜索樹的基本性質,但不是二叉樹,節點可以存放一個元素或者2個元素
(2)2個元素左側、中間、右側,表示小於、中間、大於
(3)每個節點有2個或者3個孩子----2-3樹
(4)2-3樹是一顆絕對平衡的樹,根節點到任何一個葉子節點的節點數相同

2、2-3樹如何維持絕對平衡
(1)節點融合,不會去空位置,融合,然後分裂,重新生成樹結構
(2)葉子節點融合2節點,可以;葉子融合3節點,會形成臨時4節點而分裂

三、拓展

1、紅黑樹和2-3樹等價
2、紅黑樹是保持黑平衡的二叉樹,嚴格意義上,不是平衡二叉樹,最大高度2logn
3、另一種統計性能優秀的樹結構:Splay Tree(伸展樹),局部性原理剛被訪問的內容下次高概率被再次訪問

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