Lecture 9 : Balanced Search Trees Bong-Soo Sohn Assistant Professor School of Computer Science and...
-
Upload
emmalee-tunnell -
Category
Documents
-
view
216 -
download
0
Transcript of Lecture 9 : Balanced Search Trees Bong-Soo Sohn Assistant Professor School of Computer Science and...
Lecture 9 : Balanced Search Trees
Bong-Soo Sohn
Assistant ProfessorSchool of Computer Science and Engineering
Chung-Ang University
Balanced Binary Search Tree
In Binary Search Tree Average and maximum search times will be
minimized when BST is maintained as a complete tree at all times. : O (lg N)
If not balanced, the search time degrades to O(N)
Idea :Keep BST as balanced as possible
AVL tree
"height-balanced“ binary tree the height of the left and right subtrees of
every node differ by at most one
3
2 5
6
4 7
3
5
2 9
1 4
3
12
14
7
8 11
10
Balance factor
BF = (height of right subtree - height of left subtree) So, BF = -1, 0 or +1 for an AVL tree.
0
0 0
-1
-1 0
0
+1
-1 -2
0+1
0
AVL tree rebalancing
When the AVL property is lost we can rebalance the tree via one of four rotations Single right rotation Single left rotation Double left rotation Double right rotation
Single Left Rotation (SLR)
when A is unbalanced to the left and B is left-heavy
A
B T3
T1
T2
B
T1
A
T2
T3
SLR at A
Single Right Rotation (SRR)
when A is unbalanced to the right and B is right-heavy
A
T1 B
T2
T3
B
A T3
T1
T2
SRR at A
Double Left Rotation (DLR)
When C is unbalanced to left And A is right heavy
C
A T4
T1
B
T2
T3
C
B T4
AT3
T1
T2
B
A C
T1 T2 T3 T4
SLR at A SRR at C
Double Right Rotation (DRR)
When C is unbalanced to right And A is left heavy
A
T1
B
T2
C
T3
T4
B
A C
T1 T2 T3 T4
A
T1
C
BT4
T2
T3
SRR at C SRR at A
Insertion in AVL tree
An AVL tree may become out of balance in two basic situations After inserting a node in the right subtree of the right
child After inserting a node in the left subtree of the right
child
insertion
In each case the tree is rebalanced locally insertion requires one single or one
double rotation O(constant) for rebalancing Cost of search for insert is still O(lg N)
Experiments have shown that 53% of insertions do not bring the tree out of balance