【數據結構】一、紅黑樹,節點插入,修復平衡操做總結(針對jdk8中hashmap衝突過多鏈表轉紅黑樹)

 

二叉樹節點插入

0.若是隻有一個節點,那麼就直接做爲根,塗黑,若是父爲黑,或者祖父爲空,那麼不作操做3d

1.叔叔節點不爲空且爲紅 那麼就修改父,叔叔,祖父節點顏色,最後把當前節點設置爲祖父節點,在進行平衡blog

2.若是父爲右節點,而且叔叔節點爲空或者爲黑,當前節點是右節點,若是父不爲空, 那麼把父設置爲黑,而後若是祖父不爲空,那麼祖父改成紅,並對祖父進行左旋,而後再平衡二叉樹

3.若是父爲右節點,而且叔叔節點爲空或者爲黑,當前節點是左節點, 吧當前節點的父節點進行右旋im

4.若是父爲左節點,而且叔叔節點爲空或者爲黑,當前節點是左節點, 吧當前節點的祖父節點改成紅進行右旋d3

5.若是父爲左節點,而且叔叔節點爲空或者爲黑,當前節點是右節點, 吧當前節點的祖父節點改成紅進行左旋db

 

畫出來的幾個過程圖img

 

 

 

 

 

相關文章
相關標籤/搜索