1. The AVL tree is a self-balancing binary search tree proposed by Adelson-Velsky and Landis in 1962.
2. It ensures that the heights of the two child subtrees of any node differ by at most one.
3. Rebalancing is done by performing single or double rotations after an insertion causes a height imbalance of more than one.
1 of 43
More Related Content
Avl trees
2. First-invented self-balancing binary
search tree
Named after its two inventors,
1. G.M. Adelson-Velsky and
2. E.M. Landis,
published it in their 1962 paper "An
algorithm for the organization of
information."
3. First, its a binary search tree...
L <= P and P <= R
RL
P
4. Is this a binary tree search tree?
3 9
5
15 21
17
28 34
32
43 51
46
52 54
53
58 68
60 71 79
7712 35 56
29 70
50
5. An AVL tree is a balanced binary tree
To understand balance we need to
understand the notion of Tree Height
55
32 71
64 86 Height 0
Height 1
Height 2
6. By default, nodes with no children have
a height of Height of 0.
55
32 71
64 86 Height 0
Height 1
Height 2
Height
0
Height 0
7. But, we must also understand the
concept of Sub-trees
55
32 71
64 86
Height 0 Height 1
Height 2
Height 0 Height 0
sub-tree L has a
height of 0 sub-tree R has a
height of 1
Height = max(L.height, R.height) + 1
9. Anyway, the AVL Balance Property is as
follows...
For ALL nodes, the Height of the Left and
Right Sub-trees can only differ by 1.
P A Node
L R
1.. heightRheightL
10. 1. After every insertion
2. Check to see if an imbalance was
created.
All you have to do backtrack up the tree
3. If you find an imbalance, correct it.
4. As long as the original tree is an AVL
tree, there are only 4 types of
imbalances that can occur.