1. 程式人生 > >4階b樹與紅黑樹

4階b樹與紅黑樹

任何一棵紅黑樹都對應一棵4階b樹,一棵4階b樹所對應的紅黑樹可能有多棵,但大同小異。

直接記憶紅黑樹的插入刪除很困難,而4階b樹的插入刪除操作對應紅黑樹的旋轉與變色,所以每做一步,寫出對應的4階b樹,操作完後,再變換回紅黑樹,十分好理解。

需要注意以下幾個問題:


1.每一個4階節點,注意它對應的紅黑樹如圖,記得及時變換;

2.每次引起的分裂,注意是分裂完後再插入要插入的目標結點;

3.當刪除4階節點時的中間一個關鍵字時,記得用左邊的節點代替;

4.上層刪除,從底層找後繼節點,如果是一個3關鍵位元組點,抽取中間的關鍵字。

以上都是從4階b樹角度變換的注意事項,其他可能有考慮不周的地方,大部分情況只存在唯一選擇,所以可以很輕鬆確定。

如果記憶紅黑樹的變換方式,不需要這些。

另附一個紅黑樹的模擬網站,很好,幫助理解。

https://www.cs.usfca.edu/~galles/visualization/RedBlack.html