1. 程式人生 > >8.紅黑樹的定義,紅黑樹的效能分析和與平衡二叉樹的比較

8.紅黑樹的定義,紅黑樹的效能分析和與平衡二叉樹的比較

平衡二叉樹

平衡二叉樹或者是一顆空的二叉排序樹,或是具有下列性質的二叉排序樹:

  • 根節點的左子樹和右子樹的深度最多相差1
  • 根節點的左子樹和右子樹都是平衡二叉樹

平衡因子

平衡因子是該節點的左子樹的深度與右子樹的深度之差。

最小不平衡子樹

在平衡二叉樹的構造過程中,以距離插入節點最近的,且平衡因子的絕對值大於1 的節點為根的子樹。

紅黑樹

紅黑樹是每個節點都帶有顏色屬性的二叉排序樹,顏色或紅色或黑色。除了具有二叉排序樹的性質以外,還具有以下5個性質:
性質1. 節點是紅色或黑色。
性質2. 根節點是黑色。
性質3 每個葉節點(NIL節點,空節點)是黑色的。
性質4 每個紅色節點的兩個子節點都是黑色。(從每個葉子到根的所有路徑上不能有兩個連續的紅色節點)
性質5. 從任一節點到其每個葉子的所有路徑都包含相同數目的黑色節點。

紅黑樹和平衡二叉樹的比較

紅黑樹與平衡二叉樹的查詢效能相同。但是當插入節點和刪除節點從而破壞樹的平衡性時,紅黑樹需要做旋轉調整的次數比平衡二叉樹所需的旋轉調整的次數要少的多,其查詢,插入,刪除的操作時間複雜度均為O(Log2n)。