紅黑樹的理解(2)

2021-10-03 12:49:51 字數 626 閱讀 4556

紅黑樹的變換規則:

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

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

(1)把父節點設為黑色

(2)把叔叔節點也設為黑色

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

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

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

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

(1)把父節點變為黑色

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

(3)以祖父節點旋轉(爺爺)

紅黑樹的資料儲存應用:

紅黑樹可用於hashmap:因為資料存放在記憶體,速度快

紅黑樹不用在mysql:讀取磁碟的次數過多(磁碟io),讀取浪費(一頁唯讀乙個資料,才用連續空間解決(b樹,b+樹))

資料有兩種儲存方式:記憶體(適用於小資料),硬碟(大資料)mysql

磁碟運轉的方式:速度 旋轉。頁碼的概念,一頁儲存4k資料,也就是一次磁碟io,現在可儲存16k

理解紅黑樹

在樹裡面的節點不是紅色的就是黑色的,沒有其他顏色,要不怎麼叫紅黑樹呢,是吧。性質二 根節點是黑色 根節點總是黑色的。它不能為紅。性質三 每個葉節點 nil或空節點 是黑色 這個可能有點理解困難,可以看圖 這個就是乙個紅黑樹,nil節點是個空節點,並且是黑色的。性質四 每個紅色節點的兩個子節點都是黑色...

紅黑樹理解

近期讀 linux核心設計與實現 第三版 清晰中文版 發現linux低層資料結構很多都用到紅黑樹,查查資料說說自己的理解。紅黑樹 二叉樹 高度限制 二叉樹 確定了它的查詢非常快。高度限制 這個是取普通二叉樹和平衡二叉樹之間。普通二叉樹,只管插入不做調整,可能會出現單鏈很長。平衡二叉樹,所有的鏈高度相...

紅黑樹的理解

一 紅黑樹要達到自平衡的二叉樹,必須滿足下面5個性質 1 每個節點要麼是黑色,要麼是紅色。2 根節點是黑色。3 每個紅色節點的兩個子節點一定是黑色。4 任意乙個節點到每個子節點的路徑都包含相同梳理的黑節點。所以乙個節點存在乙個黑子節點,那肯定兩個子節點都是黑色 5 每次新增的新節點,都是紅色。二 紅...