紅黑樹的紅黑標誌有什麼用

2022-05-19 04:25:59 字數 343 閱讀 4242

紅黑樹使用紅黑二色進行「著色」,目的是利用顏色值作為二叉樹的平衡對稱性的檢查,只要插入的節點「著色」滿足紅黑二色的規定,最短路徑與最長路徑不會相差的太遠,紅黑樹的節點分布就能大體上達至均衡。

紅黑二色的規定:

1.根節點是黑色。

2.每個葉子節點都是黑色的空節點(nil),也就是說,葉子節點不存資料。

3.任何相鄰的節點都不能同時為紅色,也就是說,紅色節點是被黑色節點隔開的。

4.每個節點,從該節點到達其可達葉子節點的所有路徑,都包含相同數目的黑色節點。

平均時間複雜度:

查詢:o(log(n))

插入和刪除不太清楚,比較複雜,需要按照規則來調整紅黑樹。

紅黑樹下 紅黑樹的實現

1.實現紅黑樹的基本思想 實際上,紅黑樹是有固定的平衡過程的 遇到什麼樣的節點分布,我們就對應怎麼去調整。只要按照這些固定的調整規則來操作,就能將乙個非平衡的紅黑樹調整成平衡的。首先,我們需要再來看一下紅黑樹的定義 在插入 刪除節點的過程中,第 三 四點要求可能會被破壞,所以 平衡調整 實際上就是把...

紅黑樹下 紅黑樹的實現

1.實現紅黑樹的基本思想 實際上,紅黑樹是有固定的平衡過程的 遇到什麼樣的節點分布,我們就對應怎麼去調整。只要按照這些固定的調整規則來操作,就能將乙個非平衡的紅黑樹調整成平衡的。首先,我們需要再來看一下紅黑樹的定義 在插入 刪除節點的過程中,第 三 四點要求可能會被破壞,所以 平衡調整 實際上就是把...

紅黑樹筆記 紅黑樹的插入操作

紅黑樹的插入操作可以在o logn 的時間內完成。開始插入節點的時候和二叉查詢樹一樣,只需要最後將插入的節點著成紅色,為了保證紅黑樹的性質,需要通過rb insertfixup函式來調整該節點,對其重新著色並旋轉。下面先呼叫rb insert 函式將乙個節點插入到紅黑樹中,同樣先上偽 rb inse...