數據結構之紅黑樹及Java實現

一、紅黑樹的基本介紹

紅黑樹也是一種特殊的二叉查找樹,與平衡樹相似,它也是爲了解決普通二叉查找樹的檢索效率問題而設計的,紅黑樹的每個節點上都有存儲位表示節點的顏色,可以是紅(Red)或黑(Black)。紅黑樹並不是真正的平衡二叉樹,但在實際應用中,紅黑樹的統計性能要高於平衡二叉樹,但極端性能略差。

紅黑樹在原有排序二叉樹的基礎上增加了幾個特性:
(1)每個節點或者是黑色,或者是紅色。
(2)根節點是黑色。
(3)每個葉子節點是黑色。
(4)如果一個節點是紅色的,則它的子節點必須是黑色的。
(5)從一個節點到該節點的子孫節點的所有路徑上包含相同數目的黑節點。

注意:
(01) 特性(3)中的葉子節點,是隻爲空(NIL或null)的節點。
(02) 特性(5),確保沒有一條路徑會比其他路徑長出倆倍。因而,紅黑樹是相對是接近平衡的二叉樹。

紅黑樹的特徵如下所示,其中白色節點代表紅色,黑色節點採用了黑色表示

二、紅黑樹的實現

TreeSet and TreeMap

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