演算法導論13.1紅黑樹的性質 練習總結
13.1-1 按照圖13-1(a) 的方式,畫出關鍵字集合{1,2,... ,15 }上高度為 3 的完全二叉搜尋樹。以三種不同方式想圖中加入 NIL 葉結點並對各結點著色,使所得的紅黑樹的黑高分別為 2,3 和 4。
ANSWER:
如上圖的二叉樹(省略哨兵 T.nil )
黑高為 2 :令深度為 0,2 的結點為黑,深度為 1,3 的結點為紅。
3 :令深度為 0,2,3的及誒點為黑,深度為 1 的結點為紅。
4 :全部結點均為黑。
13.1-2 對圖 13-1 中的紅黑樹,畫出對其呼叫 TREE-INSERT 操作插入關鍵字 36 後的結果。如果插入的結點被標為紅色,所得的樹是否還是一棵紅黑樹?如果該結點被標為黑色呢?
ANSWER:如果插入的結點被標為紅色,所得的樹仍是紅黑樹;如果被標為黑色,則不是紅黑樹。
13.1-3 定義一棵鬆弛紅黑樹為滿足紅黑性質 1、3、4 和 5 的二叉搜尋樹。換句話說,根結點可以是紅色或是黑色。考慮一棵根結點為紅色的鬆弛紅黑樹 T。如果將 T 的根結點標為黑色而其他不變,那麼所得到的是否還是一棵紅黑樹?
ANSWER:必須是。
13.1-4 假設將一棵紅黑樹的每一個紅結點“吸收”到它的黑色父結點中,使得紅結點的子結點變成黑色父結點的子結點(忽略關鍵字的變化)。當一個黑結點的所有紅色子結點都被吸收後,它可能的度為多少?所得的樹的葉結點深度如何?
ANSWER:
度可能為 2:如果左右兒子本來就全是黑色結點。
3:左右兒子結點情況一黑一紅。
4:左右兒子結點均為紅色。
13.1-5 證明:在一棵紅黑樹中,從某結點 x 到其後代葉結點的所有簡單路徑中,最長一條至多是最短一條的 2 倍。
ANSWER:假設該結點的黑高為 bh(x),則有 bh(x) 個黑結點,紅結點數目 ≤ bh(x)。
∴最短一條路徑(全黑)s ≥ bh(x) ,最長一條路徑(黑紅兼備)t = 紅 + 黑 ≤ bh(x) + bh(x) ≤ 2s。得證!
13.1-6 在一棵黑高為 k 的紅黑樹中,內部結點最多可能有多少?最少可能多少個?
ANSWER:
最多:樹的高度為 2k-1(紅黑高度分別佔 k, k-1),結點個數為 2^(2k) - 1個。
最少:樹的高度為 k-1(全黑),結點個數為 2^(k-1) - 1個。
13.1-7 試描述一棵含有 n 個關鍵字的紅黑樹,使其紅色內部結點個數與黑色內部結點個數的比值最大,這個比值是多少?該比值最小的樹又是怎樣呢?比值是多少?
ANSWER:
最大比值為 2:每個黑結點的左右兒子均為紅結點。
最小比值為0:全部結點均為黑色。