簡單的紅黑樹,一句話概括「保證黑節點平衡」

2021-10-16 17:42:25 字數 1592 閱讀 4377

1、每個節點是紅色或者是黑色的

2、根節點是黑色的

3、每個葉節點是黑色的

4、如果乙個節點是紅色的,那他的兩個兒子都是黑色的

5、每個節點下的路徑上都有相同數目的黑節點

6、建立新的節點是紅色的

7、比原節點大的或者等於的在右邊,比原節點小的在左邊

1、如果父節點是黑色的,不進行調整

2、如果父節點是紅色的:

1、叔叔為空的或者黑色,祖父級旋轉到左邊,變為紅色,父級變為黑色

2、叔叔是紅色,父節點+叔叔節點變黑色,祖父節點變為紅色,如果祖父節點為根節點,變為黑色

1、我們先建立乙個10根節點,為了滿足根節點是黑色,把剛建立的節點變為黑色

2、再建立乙個新節點20,根據規則建立在根節點的右邊,發現符合條件,不需要任何操作

3、我們繼續往右插入30,此時發現觸犯了叔叔為空的情況,那麼按照規則2.1.1,我們要先左旋保證叔叔不為空,也就將20變為了根節點,原來的根節點10向左移動一位

4、繼續插入40,此時符合了2.2.2原則,將父節點和叔叔節點改為黑色,由於祖父節點為根節點,還是黑色

5、插入50, 符合了2.2.1規則,50的叔叔是空的,也就導致了要旋轉,將祖父級30旋轉到左邊,變為紅色,40變為這三個中的中間,變為黑色。

6、插入60,符合2.2.2規則,叔叔為紅色,將父節點50和叔叔30變為黑色,祖父節點40變為紅色,也就得到了下面這個圖

7、插入70,符合2.2.1規則,叔叔為空的,祖父級旋轉到左邊,變為紅色,父級變為黑色

8、這裡操作了兩步

1、插入80,此時符合2.2.2規則,叔叔為紅色的,父節點70+叔叔節點50變黑色,祖父節點60變為紅色了

2、此時查詢祖父節點60叔叔是黑色,不符合2.2.1規則,叔叔是黑色,也就需要祖父級20旋轉到左邊,變為紅色,父級40變為黑色 ,也就得到了下面比較平衡的樹

走了這8步之後,也就包含了紅黑樹中所有的情況

一句話概括

概念 主題中的區域 規劃下您的站點布局吧 開始做 之前先規劃下吧,但是常常規劃完還是要改的。農場的位址,指南和地圖 農場啥時候開門,營業時間 農場的歷史 商列表 每個 商的詳細資訊 能搜尋菜譜 每個菜的詳細資訊 最近新增的菜譜列表 第二步 哪些資訊該放在哪個頁面,或者活該放在哪個型別的頁面 所有頁面...

一句話概括URI和URL區別

url是乙個確定的位址,uri是給乙個資源的唯一標識。uri相當於身份證號,而url則是身份證號加上位址 什麼是uriurl url是uri的乙個子集。它是uniform resource locator的縮寫,譯為 統一資源定位 符 通俗地說,url是internet上描述資訊資源的字串,主要用在...

一句話的perl

zcat perl e while 1.hello world 還是從最經典的 hello,world 開始.perl e print hello,world n hello,world 完全不出意料,他沒有任何歧異的終於我們願意的輸出了 hello,world 自然得就像我麼用echo或 prin...