數據結構系列,紅黑樹

紅黑樹

紅黑樹的底層數據結構就是一棵二叉查找樹(自平衡的二叉查找樹)

二叉搜索樹也叫二叉查找樹,二叉排序樹。

 

  1. 每個結點不是紅色,就是黑色
  2. 不可能有連在一起的紅色結點,兩個黑色結點連在一起是可以的。
  3. 根結點是黑色。
  4. 每個紅色結點的兩個子結點都是黑色,葉子結點都是黑色,

 

紅黑樹的變換規則:

  1. 改變顏色,紅變黑,黑邊紅
  2. 左旋
  3. 右旋

 

旋轉和顏色變換規則:

所有的插入的點默認都是紅色。

 

  1. 變顏色的情況(如圖1中插入結點6後的,6,7結點):

當前結點的父親是紅色,且它的祖父結點的另一個子節點(叔叔結點)也是紅色

變顏色的規則:

  1. 把父節點設爲黑色
  2. 把叔叔結點也變爲黑色
  3. 把祖父也就是父親的父親(爺爺)結點設爲紅色
  4. 把指針定義到祖父結點設爲當前要操作的(爺爺)分析的點變換規則
  1. 左旋,(如圖2中的12,5結點,做左旋)

當前父節點是紅色,叔叔是黑色的時候,且當前的結點是右子樹,左旋,

以父節點作爲根結點左旋,如圖2中的12,5結點,做左旋

  1. 右旋,(如圖3的5,12結點)

當前父節點是紅色,叔叔是黑色的時候,且當前的結點是左子樹,右旋。

右旋規則:

  1. 把父節點變爲黑色
  2. 把祖父結點變爲紅色(爺爺)
  3. 以祖父結點(爺爺)做選擇。如圖3中,是以19結點右旋。

    待續。。。

發佈了189 篇原創文章 · 獲贊 55 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章