1. 程式人生 > >數據結構之紅黑樹

數據結構之紅黑樹

紅黑樹;Java

數據結構之紅黑樹


紅黑樹介紹:
紅黑樹是一個平衡的二叉樹,但不是一個完美的平衡二叉樹。雖然我們希望一個所有查找都能在~lgN次比較內結束,但是這樣在動態插入中保持樹的完美平衡代價太高,所以,我們稍微放松逛一下限制,希望找到一個能在對數時間內完成查找的數據結構。這個時候,紅黑樹站了出來。

1:紅黑樹性質
先上圖
技術分享圖片
性質1:所有節點要麽是紅色要麽是黑色。這裏只是對節點進行區分,也就是說節點只有2種狀態
性質2:根節點必須是黑色。
性質3:所有葉子節點(NIL或者空節點)必須為黑色。
性質4:紅節點的2個子節點必須都為黑色。這裏是杜絕出現連續的紅節點
性質5:從任一節點到其它每個葉節點的所有路徑都包含相同數目的黑色節點。

只有滿足以上5個性質的二叉樹才是紅黑樹。

數據結構之紅黑樹