VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
CS-102 AVLSv2.pdf
1. AVL Trees
• binary tree
• for every node x, define its balance factor
balance factor of x = height of left subtree of x
– height of right subtree of x
• balance factor of every node x is – 1, 0, or 1
• log2 (n+1) <= height <= 1.44 log2 (n+2)
6. Insert/Put
• Following insert/put, retrace path towards root
and adjust balance factors as needed.
• Stop when you reach a node whose balance
factor becomes 0, 2, or –2, or when you reach
the root.
• The new tree is not an AVL tree only if you
reach a node whose balance factor is either 2 or
–2.
• In this case, we say the tree has become
unbalanced.
7. A-Node
• Let A be the nearest ancestor of the newly
inserted node whose balance factor becomes
+2 or –2 following the insert.
• Balance factor of nodes between new node
and A is 0 before insertion.
8. Imbalance Types
• RR … newly inserted node is in the right
subtree of the right subtree of A.
• LL … left subtree of left subtree of A.
• RL… left subtree of right subtree of A.
• LR… right subtree of left subtree of A.
10. LL Rotation
• Subtree height is unchanged.
• No further adjustments to be done.
Before insertion.
1
0
A
B
BL BR
AR
h h
h
A
B
B’L BR
AR
After insertion.
h+1 h
h
B
A
After rotation.
BR
h
AR
h
B’L
h+1
0
0
1
2
16. LR Rotation (case 1)
• Subtree height is unchanged.
• No further adjustments to be done.
Before insertion.
1
0
A
B
A
B
After insertion.
C
C
A
After rotation.
B
0
-1
2
0 0
0
17. LR Rotation (case 2)
• Subtree height is unchanged.
• No further adjustments to be done.
C
A
CR
h-1
AR
h
1
0
A
B
BL
CR
AR
h
h-1
h
0
CL
h-1
C
A
B
BL
CR
AR
h
h-1
h
C’L
h
C
B
BL
h
C’L
h
1
-1
2
0 -1
0
18. LR Rotation (case 3)
• Subtree height is unchanged.
• No further adjustments to be done.
1
0
A
B
BL
CR
AR
h
h-1
h
0
CL
h-1
C
A
B
BL
C’R
AR
h
h
h
CL
h-1
C
-1
-1
2
C
A
C’R
h
AR
h
B
BL
h
CL
h-1
1 0
0
23. Single & Double Rotations
• Single
LL and RR
• Double
LR and RL
LR is RR followed by LL
RL is LL followed by RR
24. LR Is RR + LL
A
B
BL
C’R
AR
h
h
h
CL
h-1
C
-1
-1
2
After insertion.
A
C
CL
C’R
AR
h
h
BL
h
B
2
After RR rotation.
h-1
C
A
C’R
h
AR
h
B
BL
h
CL
h-1
1 0
0
After LL rotation.
26. Remove An Element
0 0
0
2
0
-1 0
1
0
-1
1
-1
10
7
3
1 5
30
40
20
25
35
45
60
• Let q be parent of deleted node.
• Retrace path from q towards root.
q
27. New Balance Factor Of q
• Deletion from left subtree of q => bf--.
• Deletion from right subtree of q => bf++.
• New balance factor = 1 or –1 => no change in height of
subtree rooted at q.
• New balance factor = 0 => height of subtree rooted at q
has decreased by 1.
• New balance factor = 2 or –2 => tree is unbalanced at q.
q
28. Imbalance Classification
• Let A be the nearest ancestor of the deleted
node whose balance factor has become 2 or –2
following a deletion.
• Deletion from left subtree of A => type L.
• Deletion from right subtree of A => type R.
• Type R => new bf(A) = 2.
• So, old bf(A) = 1.
• So, A has a left child B.
bf(B) = 0 => R0.
bf(B) = 1 => R1.
bf(B) = –1 => R-1.
29. R0 Rotation
• Subtree height is unchanged.
• No further adjustments to be done.
• Similar to LL rotation.
Before deletion.
1
0
A
B
BL BR
AR
h h
h
B
A
After rotation.
BR
h
A’R
h-1
BL
h
1
-1
A
B
BL BR
A’R
After deletion.
h h
h-1
0
2
30.
31. R1 Rotation
• Subtree height is reduced by 1.
• Must continue on path to root.
• Similar to LL and R0 rotations.
Before deletion.
1
1
A
B
BL BR
AR
h h-1
h
B
A
After rotation.
BR
h-1
A’R
h-1
BL
h
0
0
A
B
BL BR
A’R
After deletion.
h h-1
h-1
1
2
32.
33. R-1 Rotation
• New balance factor of A and B depends on b.
• Subtree height is reduced by 1.
• Must continue on path to root.
• Similar to LR.
1
-1
A
B
BL
CR
AR
h-1
h
b
CL
C
A
B
BL
CR
A’R
h-1
h-1
CL
C
b
-1
2
C
A
CR A’R
h-1
B
BL
h-1
CL
0