1. 程式人生 > >紅黑樹學習

紅黑樹學習

原博:點選開啟連結

紅黑樹的插入:

先按照二叉搜尋樹的方式插入,預設顏色為紅色(為什麼不是黑色?)

然後調整,使整棵樹更加均衡

eg:

這是一顆剛插入元素4的紅黑樹

當前結點4,當前結點的父結點是紅色,祖父結點的另一個子結點(叔叔結點)是紅色。

做法:將當前節點的父節點和叔叔節點塗黑,祖父結點塗紅,把當前結點指向祖父節點,從新的當前節點重新開始演算法

當前節點7,當前節點的父節點是紅色,叔叔節點是黑色,當前節點是其父節點的右子

做法:當前節點的父節點做為新的當前節點,以新當前節點為支點左旋

當前節點2,當前節點的父節點是紅色,叔叔節點是黑色,當前節點是其父節點的左孩子

做法:父節點變為黑色,祖父節點變為紅色,在祖父節點為支點右旋,


平衡了