紅黑樹的基礎知識

2021-10-04 21:55:06 字數 730 閱讀 7748

背景

記錄紅黑樹的基礎知識。

紅黑樹的乙個實踐是jdk原始碼hashmap。 過程

節點顏色只有兩種:紅色或者黑色。

根節點顏色是黑色的。父親節點和兒子節點不能同時為紅色的。

祖父節點、父親節點、兒子節點卻可以同時為黑色的。

從根節點出發,每乙個分支的黑色節點的數目一定是相等的,這也是紅黑樹保證自平衡的乙個條件。

一般在實踐過程中,我們的node的顏色預設是紅色的。但是,插入節點的時候,預設顏色卻變成了黑色的,然後執行自平衡演算法過程。

變色:把節點的顏色變成紅色或者黑色。

旋轉:左旋轉,右旋轉。

那就是分支之間的黑色節點數目出現不一致了。

某乙個分支,比如左分子比右分支的節點數量多了一些,這裡的一些表達一定的程度數量。

左分子多了,那就右旋轉,拉扯即可。如果右分支多了,那就左旋轉,拉扯即可。

記住哪個分支節點多了一層,那麼就一定需要旋轉。記住左右是對稱的。如果能記住並理解祖父節點的左子樹的規律,那麼調換過來,就一定能夠記住並理解右子樹的規律。 小結

總結紅黑樹的基本特徵知識。

紅黑樹的操作:變色與旋轉。

變色的條件是什麼?旋轉的條件是什麼?旋轉的時候是左旋轉還是右旋轉呢?

紅黑樹的插入和刪除自平衡基礎知識

背景 參考文件 30張圖帶你徹底理解紅黑樹 過程紅黑樹為空樹。把插入節點作為根節點,並把節點設定為黑色。插入節點的key已存在。更新當前結點的值為插入節點的值。插入節點的父節點為黑節點。直接插入。插入節點的父親節點是紅節點的時候,一共有4種情況。a,叔叔節點存在且為紅色。b,叔叔節點存在是黑色或者不...

紅黑樹知識總結

紅黑樹 red black tree 是一種自平衡二叉查詢樹,所有資料塊都儲存在節點中,在進行插入和刪除操作時通過特定操作保持二叉查詢樹的平衡,從而獲得較高的查詢效能,它雖然是複雜的,但它的最壞情況執行時間也是非常良好的,並且在實踐中是高效的 它可以在o log n 時間內做查詢,插入和刪除,這裡的...

紅黑樹下 紅黑樹的實現

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