Download presentation
Presentation is loading. Please wait.
Published byTravis Jacks Modified over 9 years ago
1
1 Lecture 12 AVL Trees
2
2 trees static dynamic game treessearch trees priority queues and heaps graphs binary search trees AVL trees 2-3 treestries Huffman coding tree Types of Trees
3
3 Complete Binary Tree Is a tree with height h where: Is a tree with height h where: Every node is full upto level h-2, Every node is full upto level h-2, Level h-1 is completely filled. Level h-1 is completely filled. Level h is filled from left to right. Level h is filled from left to right. Yields to array representation. How to compute indices of parent and child? Yields to array representation. How to compute indices of parent and child? How many internal nodes and leafs? How many internal nodes and leafs?
4
4 AVL Trees Balanced binary search tree offer a O(log n) insert and delete. Balanced binary search tree offer a O(log n) insert and delete. But balancing itself costs O(n) in the average case. But balancing itself costs O(n) in the average case. In this case, even though delete will be O(log n), insert will be O(n). In this case, even though delete will be O(log n), insert will be O(n). Is there any way to have a O(log n) insert too? Is there any way to have a O(log n) insert too? Yes, by almost but not fully balancing the tree : AVL (Adelson Velskii and Landis) balancing Yes, by almost but not fully balancing the tree : AVL (Adelson Velskii and Landis) balancing
5
5 Height of a Tree Definition is same as level. Height of a tree is the length of the longest path from root to some leaf node. Definition is same as level. Height of a tree is the length of the longest path from root to some leaf node. Height of a empty tree is -1. Height of a empty tree is -1. Height of a single node tree is 0. Height of a single node tree is 0. Recursive definition: Recursive definition: height(t) = 0 if number of nodes = 1 height(t) = 0 if number of nodes = 1 = -1 if T is empty = -1 if T is empty = 1+ max(height(LT), height(RT)) otherwise = 1+ max(height(LT), height(RT)) otherwise
6
6 AVL Property If N is a node in a binary tree, node N has AVL property if the heights of the left sub-tree and right sub-tree are equal or if they differ by 1. If N is a node in a binary tree, node N has AVL property if the heights of the left sub-tree and right sub-tree are equal or if they differ by 1. Lets look at some examples. Lets look at some examples.
7
7 AVL Tree: Example
8
8 Non-AVL Tree
9
9 Transforming into AVL Tree Four different transformations are available called : rotations Four different transformations are available called : rotations Rotations: single right, single left, double right, double left Rotations: single right, single left, double right, double left There is a close relationship between rotations and associative law of algebra. There is a close relationship between rotations and associative law of algebra.
10
10 Transformations Single right : Single right : ((T1 + T2) + T3) = (T1 + (T2 + T3) Single left : Single left : (T1 + (T2 + T3)) = ((T1 + T2) + T3) Double right : Double right : ((T1 + (T2 + T3)) + T4) = ((T1+T2) + (T3+T4)) Double left : Double left : (T1 ((T2+T3) +T4)) = ((T1+T2) + (T3+T4))
11
11 Example: AVL Tree for Airports Consider inserting sequentially: ORY, JFK, BRU, DUS, ZRX, MEX, ORD, NRT, ARN, GLA, GCM Consider inserting sequentially: ORY, JFK, BRU, DUS, ZRX, MEX, ORD, NRT, ARN, GLA, GCM Build a binary-search tree Build a binary-search tree Build a AVL tree. Build a AVL tree.
12
12 Binary Search Tree for Airport Names ORY ZRH JFK BRU MEX ARN DUS GLA ORD NRT GCM
13
13 AVL Balancing : Four Rotations Single right X3 X2 X1 X2 X1X3 X1 X2 X3 Single left X2 X3 X1 X3 X2 X1 Double right X3 X2X1 X3 X1X2 X3 X1 Double left
14
14 An AVL Tree for Airport Names ORY JFK BRU Not AVL balanced Single right JFK BRU ORY AVL Balanced After insertion of ORY, JFK and BRU :
15
15 An AVL Tree for Airport Names (contd.) After insertion of DUS, ZRH, MEX and ORD JFK BRU ORY DUSMEX ZRH ORD Still AVL Balanced After insertion of NRT? JFK BRU ORY DUSMEX ZRH ORD NRT
16
16 An AVL Tree … JFK BRU ORY DUSMEX ZRH ORD NRT Not AVL Balanaced Double Left JFK BRU ORY DUSNRT ZRH ORDMEX Now add ARN and GLA; no need for rotations; Then add GCM
17
17 An AVL Tree … JFK BRU DUS ORY NRT ZRH ORDMEX ARN GLA GCM NOT AVL BALANCED JFK BRU GCM ORY NRT ZRH ORDMEX ARN GLA Double left DUS
18
18 Search Operation For successful search, average number of comparisons: For successful search, average number of comparisons: sum of all (path length+1) / number of nodes For the binary search tree (of airports) it is: For the binary search tree (of airports) it is: 39/11 = 3.55 For the AVL tree (of airports) it is : For the AVL tree (of airports) it is : 33/11 = 3.0
19
19 Known Performance Results of AVL trees AVL tree is a sub optimal solution. AVL tree is a sub optimal solution. How to evaluate its performance? How to evaluate its performance? Bounds (upper bound and lower bound) for number of comparisons: Bounds (upper bound and lower bound) for number of comparisons: C > log(n+1) + 1 C < 1.44 log(n+2) - 0.328 AVL trees are no more than 44% worse than optimal trees. AVL trees are no more than 44% worse than optimal trees.
20
20
21
21
22
22
23
23 The definition of an AVL tree indicates that the minimum number of nodes in a tree is determined by the recurrence equation: AVL h = AVL h-1 + AVL h-2 +1 where AVL 0 = 0 and AVL 1 = 1. Example: If the height is 1, there must be at least 2 nodes in the AVL tree. Proposed by Adel’son-Vel’s Skii G.M. and Landis Y.M. (1962)
24
24 EXAMPLES OF AVL TREES: 0 +1 0 0 +1 0 0+1 0 BALANCE FACTORS: Indicated by the numbers in the nodes Equal the height of right subtree minus the height of left subtree The height of empty node in AVL is -1; otherwise it is 0 All numbers should be +1, 0, or -1
25
25
26
26
27
27
28
28 1) FIRST CASE: -Resulted from inserting a node in the right subtree of the right child. +1 0 +2 0 +1 0 New node insertedAVL tree is unbalanced. P Q P QP Q The AVL tree is now balanced
29
29
30
30
31
31
32
32
33
33 2) SECOND CASE: - Resulted from inserting a node into the left subtree of the right child. (it is more complex.) +1 0 +2 +1 +1 +2 0 0 +1 0 P Q P Q P Q R R R R Q Q P P R A A A
34
34 FACTS ABOUT NODE DELETION AND INSERTION: Require at most 1.44lg(n+2) searches. Require at most 1.44lg(n+2) searches. Require 1 single or 1 double rotation, depend the balance factors Require 1 single or 1 double rotation, depend the balance factors Deletion can require 1.44lg(n+2) rotations in the worst case. Deletion can require 1.44lg(n+2) rotations in the worst case. May or may not need rotation at all May or may not need rotation at all
35
35 If append a node to a path of all zero balance factor in AVL tree, no rotations required except updating the the balance factors of nodes. 0 0 0 0 +1 +1 Before updating the nodes After updating the nodes
36
36 Example of insertion (with rotation): 20 40 60. 20 40 20 60 40 60 20
37
37 20 40 20 60 40 60 20 40 20 10 15 60 40 15 10 20 60 20 Example of insertion (with rotation): 20 40 60 10 15
38
38 Example of insertion (with rotation) 20 40 60 10 15 12. 20 40 20 60 40 60 20 40 20 10 15 60 40 15 10 20 60 40 15 60 10 20 12 10 15 40 12 20 60 15 10 40 12 11 20 60 15 11 40 10 12 20 60
39
39
40
40
41
41 Deletion of a node may or may not requires rotation. +1 0 0 +2 +1 0 0 0 Rotation required. No rotation required A B C C B A
42
42 FACTS ABOUT NODE DELETION AND INSERTION: (cont.) 22% cases of deletion require rebalancing 22% cases of deletion require rebalancing 47% cases of insertion require rebalancing 47% cases of insertion require rebalancing Because the more time-consuming deletion Because the more time-consuming deletion occurs less frequently than insertion, it will not endangering the efficiency of rebalancing AVL trees.
43
43
44
44
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.