160 likes | 266 Views
Lecture 9 : Balanced Search Trees. Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang University. Balanced Binary Search Tree. In Binary Search Tree
E N D
Lecture 9 : Balanced Search Trees Bong-Soo Sohn Assistant Professor School 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 5 3 6 2 9 2 5 4 7 1 4 7 12 3 3 8 11 14 10
Non-AVL tree example 6 4 9 3 5 7 8
Balance factor • BF = (height of right subtree - height of left subtree) • So, BF = -1, 0 or +1 for an AVL tree. 0 -1 +1 0 0 -1 0 -1 -2 0 +1 0 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 SLR at A B T3 T1 A T1 T2 T2 T3
Single Right Rotation (SRR) • when A is unbalanced to the right • and B is right-heavy A B SRR at A T1 B A T3 T2 T3 T1 T2
Double Left Rotation (DLR) • When C is unbalanced to left • And A is right heavy SRR at C SLR at A C B C B T4 A C A T4 T1 B A T3 T1 T2 T3 T4 T2 T3 T1 T2
Double Right Rotation (DRR) • When C is unbalanced to right • And A is left heavy SRR at C SRR at A A A B T1 B T1 C A C T2 C B T4 T1 T2 T3 T4 T3 T4 T2 T3
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 • Insertion of a node in the right subtree of the right child • Involves SLR at node P
insertion • Insertion of a node in the left subtree of the right child • Involves DRR :
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
Deletion in AVL tree • Not covered here • Requires O(lg N) rotations in worst case
example • Given the following AVL tree, insert the node with value 9: 6 3 12 7 13 4 10