分享

AVL Trees

 Liucw2012 2012-03-21

Chapter 10
AVL Trees

10.1 Definitions

Named after Adelson, Velskii, and Landis.

Trees of height O(log n) are said to be balanced. AVL trees consist of a special case in which the subtrees of each node differ by at most 1 in their height.

Balanced trees can be used to search, insert, and delete arbitrary keys in O(log n) time. In contrast, height-biased leftist trees rely on non-balanced trees to speed-up insertions and deletions in priority queues.

10.2 Height

Claim: AVL trees are balanced.

Proof. Let Nh denote the number of nodes in an AVL tree of depth h

Nh > Nh-1 + Nh-2 + 1
> 2Nh-2 + 1
> 1 + 2(1 + 2Nh-4)
= 1 + 2 + 22N h-4
> 1 + 2 + 22 + 23N h-6
...
> 1 + 2 + 22 + 23 + ... + 2h/2
= 2h/2 - 1
Hence,

2h/2 - 1 < n
h/2 < log 2(n + 1)
h < 2 log 2(n + 1)
A more careful analysis, based on Fibonacci numbers theory, implies the tighter bound of 1.44 log 2(n + 2).

10.3 Rotations

LL              ----Ao ------||
          ----        --  |-
         Bo-          - AR - h
      ---   ---       -|  --
   ----|     ---||      |||
  --   --   --   --
h --BL --   --BR --h
   -|||-     ||||-
     Do     |-------Bo---
   -- ||-       -----
h --BL  -         -Ao-
   -| |--       ---  ----
    |||      -|--|    ---||-
     |      --   --   -    -
     Do    h --BR --   - AR - h
             ||||-    -|||--
RR     |-------Ao---
   --  |-       -----
h --AL  -         -Bo-
   -| |--       ---  ----
    |||      -|--|    ---||-
            --   --   -    -
          h --BL --   - BR -h
             |||--    -|||--
                        Do              ----Bo ------||
          ----        --  |-
         Ao-          - BR -h
      ---- ----       -|  --
   ----|     ---||     ||||
  --   --   --   --     |
h --AL  -   --BL --h    Do
   -|||-     |||--
LR                 -----Ao ---------||
           ------            --  |-
         --Bo|               --AR  -h
      ----  ||||             -| |--
  ----|-       |||            |||
  -    -         ||
h - BL -       ||Co||
  -|||--     |||    ||||
           --| |-   -- ||
        h- 1 -CL  -   -CR -|h- 1
            |||-    -|||-
             Do          --------Co--------
      --Bo--            --Ao---
  ------    --||    -----    ---||-
  - B  -   --  --   -   -|  --A   -
h -  L -   -CL --h- 1 -CR -   --  R -h
  -|||--    |||-     |||-    -|||-
             Do
RL    |----------Ao-----
  --  |-            -----
h -AR  -               |Bo--
  -|  --             |||   ----
   |||             |||       ---||-
                  ||         -    -
                |Co||        -BR  -h
             |||    ||||     -|||--
           --| |-   -- ||-
        h- 1 -CL  -   -CR -|h- 1
            |||--   -|||-
             Do          --------Co--------
      --Ao--            --Bo---
  ------    --||    -----    ---||-
  - A  -   --  --   -   -|  --B   -
h -  L--   -CL --h- 1 -CR -   --  R -h
  -|||-     |||-     |||-    -|||-
             Do
LL
&
LR
==>
LL
             ----Ao ------||
          ----        --  |-
         Bo-          - AR - h
      ---   ---       -|  --
   ----|     ---||      |||
  --   --   --   --
h --BL --   --BR --h
   -|||-     ||||-
     Do        Eo     |-------Bo---
   -- ||-       -----
h --BL  -         -Ao-
   -| |--       ---  ----
    |||      -|--|    ---||-
     |      --   --   -    -
     Do    h --BR --   - AR - h
             ||||-    -|||--
              Eo

10.4 Insertions and Deletions

Insertions and deletions are performed as in binary search trees, and followed by rotations to correct imbalances in the outcome trees. In the case of insertions, one rotation is sufficient. In the case of deletions, O(log n) rotations at most are needed from the first point of discrepancy going up toward the root.

               o
            --5 ---
         ---      ----
      o---           -- o
     |3||            --8---
    ||  ||        ----    ---
  2o     4o      7o-          11o
  |             |           || ||
 ||            ||          ||   ||
1o             6o          10o|     12o
                         ||
                         |
                        9o
Delete 4             --5o---
         ----     ----
      o---           -- o
     |3              --8---
    ||             ---    ---
   o|            o--        --o
  2             |7           11|
 ||            ||          ||  |||
o|             o          o|     |o
1             6          |10      12
                         |
                        9o
Imbalance at ‘3’ implies a LL rotation with ‘2’         ---5o---
      ---     ---
   o---          --o
  |2|            --8--
 || ||        ----    ---
 o   o       o-         --o
1    3      7           |11|
           ||          ||  ||
          o|          o|    |o
          6          10     12
                    ||
                   9o
Imbalance at ‘5’ implies a RR rotation with ‘8’.               --8o---
           ----     ----
        o---           -- o
      |5 ||             |11|
    |||   ||           ||  ||
   o|      ||o        o|    |o
  |2|       7        10     12
 || ||     ||       ||
 o   o    o|        o
1    3    6        9

10.5 Demo Applets

10.6 Assignment #4 (due We, Oct 20)

  1. Provide an algorithm that, when given a binary search tree, removes in constant space all the nodes from the tree, in ascending order of keys. How much time your algorithm requires? Show the time and space analysis of your algorithm.

  2. Provide an algorithm that, when given a binary search tree, removes in linear time all the nodes from the tree, in ascending order of keys. How much space your algorithm requires? Show the time and space analysis of your algorithm.

  3. Construct a binary search tree by introducing the following keys in the given order: 1, 2, 7, 6, 3, 4, 5. Then repeatedly use AVL rotations to transform the tree into an AVL tree, while showing all the intermediate trees being created in the process. In each stage, the AVL transformation should be conducted at a discrepancy that is farthest from the root.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多