Download presentation
Presentation is loading. Please wait.
1
AVL Tree 27th Mar 2007
2
Outline AVL Tree Definition Properties Operations 27th Mar 2007
3
AVL Trees Unbalanced Binary Search Trees are bad. Worst case: operations take O(n). AVL (Adelson-Velskii & Landis) trees maintain balance. For each node in tree, height of left subtree and height of right subtree differ by a maximum of 1. X X H H-2 H-1 27th Mar 2007
4
AVL Trees 10 5 3 20 1 43 10 5 3 20 5 2 1 3 27th Mar 2007
5
AVL Trees 12 8 16 4 10 14 2 6 27th Mar 2007
6
Insertion for AVL Tree After insert 1 12 8 16 4 10 14 2 6 1
27th Mar 2007
7
Insertion for AVL Tree To ensure balance condition for AVL-tree, after insertion of a new node, we back up the path from the inserted node to root and check the balance condition for each node. If after insertion, the balance condition does not hold in a certain node, we do one of the following rotations: Single rotation Double rotation 27th Mar 2007
8
Insertions Causing Imbalance
HP=HQ=HR k2 k1 k1 k2 R P P Q Q R An insertion into the subtree: P (outside) - case 1 Q (inside) - case 2 An insertion into the subtree: Q (inside) - case 3 R (outside) - case 4 27th Mar 2007
9
Single Rotation (case 1)
HA=HB+1 HB=HC k2 k1 k1 k2 A C A B B C 27th Mar 2007
10
Single Rotation (case 4)
HA=HB HC=HB+1 k2 k1 k1 k2 C A A B B C 27th Mar 2007
11
Problem with Single Rotation
Single rotation does not work for case 2 and 3 (inside case) k2 k1 k1 k2 R P P Q Q R HQ=HP+1 HP=HR 27th Mar 2007
12
Double Rotation: Step k3 k3 k1 k2 D D k2 k1 A C B C B A HA=HB=HC=HD
27th Mar 2007
13
Double Rotation: Step k2 k1 k3 A D B C 27th Mar 2007
14
Double Rotation k3 k2 k1 k1 k3 D k2 A B C D A B C HA=HB=HC=HD
27th Mar 2007
15
Double Rotation k2 k1 k1 k3 k3 A k2 A B C D D B C HA=HB=HC=HD
27th Mar 2007
16
Example Insert 3 into the AVL tree 11 8 20 4 16 27 8 11 4 20 3 16 27 8
27th Mar 2007
17
Example Insert 5 into the AVL tree 11 8 20 4 16 27 8 11 5 20 4 16 27 8
27th Mar 2007
18
AVL Trees: Exercise Insertion order:
10, 85, 15, 70, 20, 60, 30, 50, 65, 80, 90, 40, 5, 55 27th Mar 2007
19
Remove Operation in AVL Tree
Removing a node from an AVL Tree is the same as removing from a binary search tree. However, it may unbalance the tree. Similar to insertion, starting from the removed node we check all the nodes in the path up to the root for the first unbalance node. Use the appropriate single or double rotation to balance the tree. May need to continue searching for unbalanced nodes all the way to the root. 27th Mar 2007
20
Deletion X in AVL Trees Deletion: Case 1: if X is a leaf, delete X
Case 2: if X has 1 child, use it to replace X Case 3: if X has 2 children, replace X with its inorder predecessor (and recursively delete it) Rebalancing 27th Mar 2007
21
Delete 55 (case 1) 60 20 70 10 40 65 85 80 90 5 15 30 50 55 27th Mar 2007
22
Delete 55 (case 1) 60 20 70 10 40 65 85 80 90 5 15 30 50 55 27th Mar 2007
23
Delete 50 (case 2) 60 20 70 10 40 65 85 80 90 5 15 30 50 55 27th Mar 2007
24
Delete 50 (case 2) 60 20 70 10 40 65 85 50 80 90 5 15 30 55 27th Mar 2007
25
Delete 60 (case 3) 60 prev 20 70 10 40 65 85 80 90 5 15 30 50 55 27th Mar 2007
26
Delete 60 (case 3) 55 20 70 10 40 65 85 80 90 5 15 30 50 27th Mar 2007
27
Delete 55 (case 3) 55 prev 20 70 10 40 65 85 80 90 5 15 30 50 27th Mar 2007
28
Delete 55 (case 3) 50 20 70 10 40 65 85 80 90 5 15 30 27th Mar 2007
29
Delete 50 (case 3) 50 prev 20 70 10 40 65 85 80 90 5 15 30 27th Mar 2007
30
Delete 50 (case 3) 40 20 70 10 30 65 85 80 90 5 15 27th Mar 2007
31
Delete 40 (case 3) 40 prev 20 70 10 30 65 85 80 90 5 15 27th Mar 2007
32
Delete 40 : Rebalancing 30 20 70 10 Case ? 65 85 80 90 5 15
27th Mar 2007
33
Delete 40: after rebalancing
30 10 70 20 65 85 5 80 90 15 Single rotation is preferred! 27th Mar 2007
34
Minimum Element in AVL Tree
An AVL Tree of height H has at least FH+3-1 nodes, where Fi is the i-th fibonacci number S0 = 1 S1 = 2 SH = SH-1 + SH-2 + 1 SH-1 SH-2 H H-2 H-1 27th Mar 2007
35
AVL Tree: analysis (1) 27th Mar 2007
36
AVL Tree: analysis (2) The depth of AVL Trees is at most logarithmic.
So, all of the operations on AVL trees are also logarithmic. The worst-case height is at most 44 percent more than the minimum possible for binary trees. 27th Mar 2007
37
Summary Find element, insert element, and remove element operations all have complexity O(log n) for worst case Insert operation: top-down insertion and bottom up balancing 27th Mar 2007
38
Further Study Section 19.4 of Weiss book 27th Mar 2007
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.