1. 程式人生 > >數據結構與算法分析-AVL樹深入探討

數據結構與算法分析-AVL樹深入探討

vhd tran ons c-s 算法 amp cal pascal oot

數據結構與算法分析-AVL樹深入探討

Table of Contents

  • 1. 數據結構之-AVL樹深入探討
    • 1.1. AVL樹介紹
    • 1.2. AVL樹的四種不平衡情形

1 數據結構之-AVL樹深入探討

之前學習數據結構與算法分析C語言描述的時候, 學到了AVL樹, 陷入了重重的陷阱, 如今把一一踩過的陷阱都描述出來, 好讓自己溫故知新.

1.1
AVL樹介紹

  • AVL(Adelson-Velskii和Landis)樹是帶有平衡條件的二叉查找樹.這個平衡條件必須要容易保持.而且它須保證樹的深度是 \(O(\log{N})\).
  • 一棵AVL樹是其任意節點的左子樹和右子樹的高度絕對值最多差1的二叉查找樹.
  • 下圖是AVL樹和非AVL樹

技術分享圖片

1.2 AVL樹的四種不平衡情形

  • AVL樹的任意節點 a 的兩棵子樹(左兒子和右兒子)的高度差2就會出現不平衡狀態.
  • 不平衡情形分為四種
    • a 的左兒子(L)的左子樹(L)進行一次插入. LL情形
    • a 的左兒子(L)的右子樹(R)進行一次插入. LR情形
    • a 的右兒子(R)的左子樹(L)進行一次插入. RL情形
    • a 的右兒子(R)的右邊子樹(R)進行一次插入. RR情形

Date: 2018-11-19 22:15

Author: devinkin

Created: 2018-11-19 一 22:16

Validate

數據結構與算法分析-AVL樹深入探討