[Data Structure & Algorithm] 平衡二叉樹

平衡二叉樹 AVL (由前蘇聯數學家Ablelso-Velski和Landis發明)

  • 平衡因子 - 左子樹的深度 減去 右子樹的深度
  • 性質
    • 任何結點的左子樹和右子樹的深度之差不超過1,即平衡因子的值只多是-1,0,1
    • 深度爲h的平衡二叉樹,至少須要的結點數Nh = 1 + Nh-1 + Nh-2
      • 如,N1 = 1,N2 = 2,N3 = 1+2+1 = 4
  • 目的 - 使二叉排序樹的平均查找長度最小
  • 查找的時間複雜度 - O(log2n)

旋轉

  • 定義 - 在插入結點後,對AVL樹進行簡單修改來保證其平衡性
  • 分類
    • 單旋轉
      • LL - 對左孩子的左子樹進行一次插入
      • RR - 對右孩子的右子樹進行一次插入
    • 雙旋轉
      • LR - 對左孩子的右子樹進行一次插入
      • RL - 對右孩子的左子樹進行一次插入
相關文章
相關標籤/搜索