AVL Trees

advertisement
Lecture 12
AVL Trees
1
Types of Trees
trees
static
game trees
binary search
trees
dynamic
search trees
AVL trees
priority queues
and heaps
2-3 trees
graphs
tries
Huffman
coding
tree
2
Complete Binary Tree

Is a tree with height h where:
Every node is full upto level h-2,
 Level h-1 is completely filled.
 Level h is filled from left to right.

Yields to array representation. How to
compute indices of parent and child?
 How many internal nodes and leafs?

3
AVL Trees





Balanced binary search tree offer a O(log n)
insert and delete.
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).
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
4
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.
 Height of a empty tree is -1.
 Height of a single node tree is 0.
 Recursive definition:
 height(t) = 0 if number of nodes = 1
= -1 if T is empty
= 1+ max(height(LT), height(RT))
otherwise

5
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.
 Lets look at some examples.

6
AVL Tree: Example
7
Non-AVL Tree
8
Transforming into AVL Tree
Four different transformations are
available called : rotations
 Rotations: single right, single left,
double right, double left
 There is a close relationship between
rotations and associative law of algebra.

9
Transformations
Single right :
((T1 + T2) + T3) = (T1 + (T2 + T3)
 Single left :
(T1 + (T2 + T3)) = ((T1 + T2) + T3)
 Double right :
((T1 + (T2 + T3)) + T4) = ((T1+T2) +
(T3+T4))
 Double left :
(T1 ((T2+T3) +T4)) = ((T1+T2) + (T3+T4))

10
Example: AVL Tree for Airports
Consider inserting sequentially: ORY,
JFK, BRU, DUS, ZRX, MEX, ORD, NRT,
ARN, GLA, GCM
 Build a binary-search tree
 Build a AVL tree.

11
Binary Search Tree for Airport
Names
ORY
ZRH
JFK
MEX
BRU
ORD
ARN
DUS
GLA
GCM
NRT
12
AVL Balancing : Four Rotations
X1
X1
X3
Double right
X2
X2
X2
X2
Single right
X3
X3
X2
X1
X2
Single left
X3
X1
X1
X1
X3
Double left
X1
X2
X3
X1
X2
X3
X3
13
An AVL Tree for Airport Names
After insertion of ORY, JFK and BRU :
ORY
JFK
BRU
Single right
JFK
BRU
ORY
Not AVL balanced
AVL Balanced
14
An AVL Tree for Airport Names
(contd.)
After insertion of DUS, ZRH,
MEX and ORD
After insertion of NRT?
JFK
JFK
BRU
BRU
ORY
ORY
DUS
DUS
MEX
MEX
ZRH
ZRH
ORD
ORD
Still AVL Balanced
NRT
15
An AVL Tree …
Not AVL Balanaced
JFK
JFK
BRU
BRU
ORY
DUS
MEX
ZRH
ORD
NRT
Double Left
ORY
DUS
MEX
NRT
ZRH
ORD
Now add ARN and GLA; no
need for rotations; Then add GCM
16
An AVL Tree…
JFK
JFK
BRU
NRT
DUS
ARN
GLA
MEX
GCM
ORY
BRU
ORY
ZRH
ORD
GCM
ARN
DUS
GLA
NRT
MEX
ZRH
ORD
Double left
NOT AVL BALANCED
17
Search Operation
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:
39/11 = 3.55
 For the AVL tree (of airports) it is :
33/11 = 3.0

18
Known Performance Results of
AVL trees
AVL tree is a sub optimal solution.
 How to evaluate its performance?
 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.

19
20
21
22
Proposed by Adel’son-Vel’s Skii G.M. and Landis Y.M. (1962)
The definition of an AVL tree indicates that the
minimum number of nodes in a tree is
determined by the recurrence equation:
AVLh= AVLh-1 + AVLh-2 +1
where AVL0 = 0 and AVL1 = 1.
Example: If the height is 1, there must be at least
2 nodes
in the AVL tree.
23
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
EXAMPLES OF AVL TREES:
+1
-1
0
0
+1
-1
0
-1
-1
0
+1
0
0
24
25
26
27
1) FIRST CASE:
-Resulted from inserting a node in
the right subtree of the right child.
+1
P
0
Q
+2 P
Q
+1
Q
P
0
0
+1
+1
New node inserted AVL tree is unbalanced.The AVL tree is now balanced
28
29
30
31
32
2) SECOND CASE:
-Resulted from inserting a node into the left
subtree of the right child. (it is more complex.)
+1 P
+2 P
0 Q
+1 P
-1 Q
-1 Q
A -1
A
R
R
+2 P
+1
+2
0
0
P
R
A
R +1
R
Q
0
Q
33
FACTS ABOUT NODE DELETION
AND INSERTION:
• Require at most 1.44lg(n+2) searches.
• Require 1 single or 1 double rotation,
depend the balance factors
• Deletion can require 1.44lg(n+2)
rotations in the worst case.

May or may not need rotation at all
34
• 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
-1
+1
0
0
Before updating the nodes
-1
+1
After updating the nodes
35
Example of insertion (with rotation): 20 40 60
.
20
20
40
40
40
20
60
60
36
Example of insertion (with rotation): 20 40 60 10 15
20
40
20
40
20
40
40
20
60
60
60
10
15
40
15
10
60
20
37
Example of insertion (with rotation) 20 40 60 10 15 12
.
20
40
20
40
20
40
40
20
60
10
60
40
15
10
15
40
60
20
15
15
60
10
20
12
40
10
12
20
15
10
11
20
60
15
40
12
60
11
60
10
40
12
20
38
60
39
40
• Deletion
of a node may or may not
requires rotation
.
+2 A
0 B
+1
0
+1 B
+1
A 0
C
0
C
Rotation required.
0
+1
No rotation required
41
FACTS ABOUT NODE DELETION
AND INSERTION: (cont.)
• 22% cases of deletion require
rebalancing
• 47% cases of insertion require
rebalancing
• Because the more time-consuming
deletion
occurs less frequently than insertion, it
42
43
44
Download