重念一次早該補起來的「資料結構與演算法」。這篇筆記下 紅黑樹 Red-Black Tree 能運用的策略。
課程相關資訊
[連結]:https://hiskio.com/en/courses/572/lectures/146363
本篇範圍:Chapter 14
請注意:本系列文章為個人對應課程的消化吸收後,所整理出來的內容。換言之,並不一定會包含全部的課程內容,也有可能會添加其他資源來說明。
內容
「步驟」
1. 新增時,其演算法跟 BST 的時候相同,但這個新增的節點一定是紅色
2. 需要修正 Red-Red 的衝突問題
2-1. 若和根節點相連,那就將根節點改為黑色
2-2. 若 Z 的 uncle 節點 ( parents’ siblings ) 是紅色,那就把祖父層的節點變成紅色 -> 父層都變成黑色 -> 將 Z 節點指向祖父層的紅色,再進行後續的自我修正
詳情可以看這一篇文章示範:https://medium.com/@imprld01/red-black-tree-%E7%B4%85%E9%BB%91%E6%A8%B9-8d793e692d70