1. 程式人生 > >《演算法導論》13.1習題

《演算法導論》13.1習題

  • 前三題考察對紅黑樹5條性質的理解,比較簡單。4-7題很有啟發性。

  • 13.1-4 可以把從樹根到葉子的路徑想象成一根枝條,按照紅黑樹屬性5的要求,當完全收縮時,每根枝條上黑色節點數目是相同的,當完全伸展開時,會從兩個黑色節點之間抽出一個紅色節點。

    這種設計的妙處是,對同一個根下的兩根枝條a,b(a長於b),有 b.height <= a.height <= 2*b.height,於是控制了樹的形狀相對平衡。

  • 13.1-5 其實13.1-4 已經證明了這一點,完全收縮的枝條就是根到葉子的最短路徑,完全伸展的枝條就是根到葉子最長的路徑,最長路徑與最短路徑相比,每兩個黑色節點之間都插入了一個紅色節點,所以長度是兩倍的關係。

  • 13.1-6 在黑高為bh的樹上,內部節點最多的情況是紅黑相間排列,有2^(2*bh)-1個;最少的情況是沒有紅色節點,有2^bh-1個。

  • 13.1-7 the largest ratio = 2, the smallest ratio = 0。