紅黑樹的基礎知識

背景

  1. 記錄紅黑樹的基礎知識。
  2. 紅黑樹的一個實踐是JDK源碼HashMap。

過程

  • 紅黑樹的基本性質
  1. 節點顏色只有兩種:紅色或者黑色。
  2. 根節點顏色是黑色的。
  3. 父親節點和兒子節點不能同時爲紅色的。
  4. 祖父節點、父親節點、兒子節點卻可以同時爲黑色的。
  5. 從根節點出發,每一個分支的黑色節點的數目一定是相等的,這也是紅黑樹保證自平衡的一個條件。
  6. 一般在實踐過程中,我們的Node的顏色默認是紅色的。但是,插入節點的時候,默認顏色卻變成了黑色的,然後執行自平衡算法過程。
  • 基礎操作?
  1. 變色:把節點的顏色變成紅色或者黑色。
  2. 旋轉:左旋轉,右旋轉。
  • 變色的條件是什麼?
  1. 那就是分支之間的黑色節點數目出現不一致了。
  • 旋轉的條件是什麼?
  1. 某一個分支,比如左分子比右分支的節點數量多了一些,這裏的一些表達一定的程度數量。
  2. 左分子多了,那就右旋轉,拉扯即可。如果右分支多了,那就左旋轉,拉扯即可。
  3. 記住哪個分支節點多了一層,那麼就一定需要旋轉。
  4. 記住左右是對稱的。如果能記住並理解祖父節點的左子樹的規律,那麼調換過來,就一定能夠記住並理解右子樹的規律。

小結

  1. 總結紅黑樹的基本特徵知識。
  2. 紅黑樹的操作:變色與旋轉。
  3. 變色的條件是什麼?旋轉的條件是什麼?旋轉的時候是左旋轉還是右旋轉呢?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章