紅黑樹是二叉排序樹的改進,
紅黑樹有幾個特點:
1:節點只有2中顏色,紅色和黑色。
2:根節點一定是黑色節點。
3:紅色節點的子節點一定是黑色節點。
4:黑色高度(根節點到每個葉子節點的路徑長度包含相同的黑色節點)相等。
規定的插入的節點一定是紅色節點,
紅黑樹的插入節點後需要調整的規則,插入節點需要調整的情況有3種:
情況1:插入的節點的父節點和叔叔節點都為紅色:
以上情況節點4為插入節點(當前節點),這種情況調整方式是將父節點和叔叔節點都調整為黑色節點,祖父節點調整為紅色,將祖父節點變為當前節點。調整後就變為情況2.如下:
情況2:父節點為紅色,叔叔節點為黑色,並且當前節點為父節點的右節點。將當前節點7的父節點變為當前節點,將當前節點作為支點向左ll旋轉,就變為情況3:
情況3:當前節點的父節點是紅色,叔叔節點為黑色,並且當前節點是父節點的左節點。調整方法為:將祖父節點變成紅色,以祖父節點為支點向右ll旋轉,最後將根節點變成黑色。
總結:調整的順序為 1->2->3:
資料結構 紅黑樹
一 紅黑樹 紅黑樹 red black tree 是一種自平衡二叉查詢樹,是在 電腦科學中用到的一種 資料結構 典型的用途是實現 關聯陣列 可以保證最長路徑不超過最短路徑的2倍,近似平衡。二 性質 性質1.節點是紅色或黑色。性質2.根節點是黑色。性質3 每個葉節點 nil節點,空節點 是黑色的。性質...
資料結構 紅黑樹
紅黑樹是一棵二叉搜尋樹,它在每個節點上增加了乙個儲存位來表示節點的顏色,可以是紅色也可以是黑色。通過對任何一條從根到葉子簡單路徑上的顏色來約束,紅黑樹保證最長路徑不超過最短路徑的兩倍,因而近似於平衡。紅黑樹滿足下面的性質 1 每個節點,不是紅色就是黑色的 2 根節點是黑色的 3 如果乙個節點是紅色的...
資料結構 紅黑樹
資料結構之紅黑樹 一 什麼是紅黑樹?紅黑樹是一棵二叉搜尋樹,它在每個結點上增加了乙個儲存位來表示結點的顏色,可以是red或者black,通過對任何一條從根節點到葉子結點上的簡單路徑來約束,紅黑樹保證最長路徑不超過最短路徑的兩倍,因而近似平衡。二 紅黑樹滿足的條件?1.每個結點不是紅色就是黑色 2.根...