紅黑樹及其繪製

2021-06-08 20:32:05 字數 497 閱讀 2624

紅黑樹是重要的資料結構,而其操作又很複雜,如果能夠視覺化地展示插入與刪除過程,則學習起來會容易得多。

為了學習它們,我翻譯以下文章(**)並實現了相應演算法,並放到網路上,與說中文的程式愛好者共同進步。

1、紅黑樹-[英文版, wikipedia]

2、tidy drawings of trees-[英文版, charles wetherell & alfred shannon]

3、tidier drawings of trees-[英文版, edward m. reingold & john s. tilford]

c#實現的源**也可以複製傳播,詳見原始檔注釋,使用時也請註明出處。

熊懷東[email protected](改用新郵箱了:

紅黑樹下 紅黑樹的實現

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

紅黑樹下 紅黑樹的實現

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

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

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