紅黑樹的性質:
(1) 每個結點或是紅的,或是黑的。
(2) 根節點是黑的。
(3) 每個葉子結點是黑的。
(4) 如果乙個結點是紅的,則它的
(5) 對每個結點,從該結點到其子孫結點的所有路徑上包含相同數目的黑結點。
一顆有n個節點的紅黑樹的高度至少為2lg(n+1).
①練習
13.1-2 :對於書上13-1圖中插入36。①如果結點顏色是紅的。由於結點35是紅色,不滿足紅色結點子節點是黑的性質。②如果結點顏色是黑色。經過36到達葉子結點的路徑黑高度比其他路徑多1,不滿足紅黑樹性質。
13.1-3: 定義鬆弛紅黑滿足性質,1,3,4,5。在根結點顏色不同時候,滿足紅黑樹性質,依然是紅黑樹。
13.1.4:可能的度為
2:黑色結點子女都為黑
3:黑色結點子女一黑一紅
4:黑色結點子女都為紅
13.1.5:證明:在黑高度相同是,最短路徑是 黑黑黑 。最長路徑為黑紅黑紅黑紅。
所以最長路徑是最短一條的至多兩倍。
13.1.6:在一顆黑高度為k的紅黑樹中,內結點最多可能有多少個?最少可能有多少個?
答: 黑高度為k,所以相當於一棵高度為2k -1的完全二叉樹。所以內結點至多有2^(2k)-1個,最少有2^(k-1)-1個。
13.1.7: 最大比值為2,黑結點子女為紅結點。最小比值為0,只有黑結點。
演算法導論13 1紅黑樹的性質 練習總結
13.1 1 按照圖13 1 a 的方式,畫出關鍵字集合上高度為 3 的完全二叉搜尋樹。以三種不同方式想圖中加入 nil 葉結點並對各結點著色,使所得的紅黑樹的黑高分別為 2,3 和 4。如上圖的二叉樹 省略哨兵 t.nil 黑高為 2 令深度為 0,2 的結點為黑,深度為 1,3 的結點為紅。3 ...
《演算法導論》筆記 第13章 13 1 紅黑樹的性質
紅黑樹中每個結點包含五個域 color,key,left,right和p。如果某結點沒有乙個子結點或父結點,則該域指向nil。我們把nil視為二叉樹的外結點 葉子 而帶關鍵字的結點視為內結點。一棵二叉樹如果滿足下面的紅黑性質,則為一棵紅黑樹 1 每個結點或是紅的,或是黑的。2 根結點是黑的。3 每個...
紅黑樹(演算法導論)
測試 所用的例子為算導第三版p179圖13 4 include using namespace std const bool black 0 黑色 const bool red 1 紅色 struct node 結點結構 class rb tree 初始化nil結點和root node left r...