紅黑樹學習筆記

2021-10-08 09:45:56 字數 651 閱讀 9451

1.每個節點不是紅色就是黑色

2.不可能有連在一起的紅色節點

3.根節點都是黑色的 root(沒有父節點的節點就是根節點,即入度為0)

4.每個紅色節點的兩個子節點都是黑色,葉子節點都是黑色,出度為0,滿足了性質就可以近似的平衡了,不一定要紅黑,也可以是其他的。

紅黑樹有三種旋轉方式

1.改變顏色(紅變黑,黑變紅)

2.左旋

3.右旋

旋轉和顏色變換規則: 所有插入的點預設為紅色。

1.變顏色情況: 當前結點的父親是紅色,且它的祖父結點的另乙個子結點也是紅色(叔叔結點)

1)把父結點設定為黑色

2)把叔叔也設定為黑色

3)把祖父也就是父親的父親設定為紅色(爺爺)

4)把指標定義到祖父結點設定為當前要操作的。(爺爺)分析的點變換的規則

2.左旋: 當前父結點是紅色,叔叔是黑色的時候,且當前的結點是右子樹。左旋以父結點作為左旋

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

1)把父結點變成黑色

2)把祖父結點變為紅色(爺爺)

3)把祖父結點旋轉(爺爺)

紅黑樹學習筆記

二叉樹,他的定義是每個節點最多只有兩個子樹 即左子樹和右子樹,當然也可以沒有子樹 如下圖是乙個簡單的二叉樹 對於這樣的資料結構,在c語言中通常這樣來定義結構體?1 2 3 4 5 typedefstruct binary tree binarytree 二叉搜尋樹,首先他也是乙個二叉樹,與二叉樹不同...

紅黑樹學習筆記

因為學習hashmap的時候,遇到了紅黑樹,故而複習哈,想深度學習的請轉到下面鏈結,作者 並茂的詳細講解了哈,分析的很清楚,覺得好的不忘給別人手動比心。30張圖帶你徹底理解紅黑樹 因為從這裡開始,是自己的學習筆記,從上面提到的文章中學習總結的,主要是為了給自己看,記錄哈,容易忘記,純概念,可能比較苦...

紅黑樹筆記

1.紅黑樹的根是黑的 2.所有外部節點 nil 都是黑的 3.其餘節點若為紅則只能有黑孩子 紅節點的兒子和父親都是黑色的 4.外部節點到根途經的黑節點數目相等 黑深度 外部節點是一類本不存在的節點 引入是為了方便分析和實現 紅黑樹的區域性結構無非四種 總是假設插入的節點是紅色 除非是根 1.雙紅缺陷...