1 / 16

Lecture 9 : Balanced Search Trees

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

christmas
Download Presentation

Lecture 9 : Balanced Search Trees

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lecture 9 : Balanced Search Trees Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang University

  2. 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

  3. 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

  4. Non-AVL tree example 6 4 9 3 5 7 8

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. insertion • Insertion of a node in the right subtree of the right child • Involves SLR at node P

  13. insertion • Insertion of a node in the left subtree of the right child • Involves DRR :

  14. 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

  15. Deletion in AVL tree • Not covered here • Requires O(lg N) rotations in worst case

  16. example • Given the following AVL tree, insert the node with value 9: 6 3 12 7 13 4 10

More Related