1 / 39

AVL Tree

AVL Tree. Outline. AVL Tree Definition Properties Operations. AVL Trees. Unbalanced Binary Search Trees are bad. Worst case: operations take O(n). AVL (Adelson-Velskii & Landis) trees maintain balance.

raja-mckay
Download Presentation

AVL Tree

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

  2. Outline • AVL Tree • Definition • Properties • Operations

  3. AVL Trees • Unbalanced Binary Search Trees are bad. Worst case: operations take O(n). • AVL (Adelson-Velskii & Landis) trees maintain balance. • For each node in tree, height of left subtree and height of right subtree differ by a maximum of 1. X X H H-2 H-1

  4. 10 10 5 20 5 20 43 3 3 1 2 1 3 AVL Trees 5

  5. AVL Trees 12 8 16 4 10 14 2 6

  6. Insertion for AVL Tree • After insert 1 12 8 16 4 10 14 2 6 1

  7. Insertion for AVL Tree • To ensure balance condition for AVL-tree, after insertion of a new node, we back up the path from the inserted node to root and check the balance condition for each node. • If after insertion, the balance condition does not hold in a certain node, we do one of the following rotations: • Single rotation • Double rotation

  8. Insertions in AVL Trees Let the node that needs rebalancing be . There are 4 cases: Outside Cases (require single rotation) : 1. Insertion into left subtree of left child of . 2. Insertion into right subtree of right child of . Inside Cases (require double rotation) : 3. Insertion into right subtree of left child of . 4. Insertion into left subtree of right child of . The rebalancing is performed through four separate rotation algorithms.

  9. Insertions Causing Imbalance k2 k1 HP=HQ=HR • An insertion into the subtree: • P (outside) - case 1 • Q (inside) - case 2 • An insertion into the subtree: • Q (inside) - case 3 • R (outside) - case 4 k1 k2 R P P Q Q R

  10. Single Rotation (case 1) HA=HB+1 HB=HC k2 k1 k1 k2 A C A B B C

  11. Single Rotation (case 4) HA=HB HC=HB+1 k2 k1 k1 k2 C A A B B C

  12. Problem with Single Rotation • Single rotation does not work for case 2 and 3 (inside case) k2 k1 k1 k2 R P P Q Q R HQ=HP+1 HP=HR

  13. Double Rotation: Step k3 k3 k1 k2 D D k2 k1 A C B C B A HA=HB=HC=HD

  14. Double Rotation: Step k2 k1 k3 A D B C

  15. Double Rotation k3 k2 k1 k1 k3 D k2 A B C D A B C HA=HB=HC=HD

  16. Double Rotation k2 k1 k3 k1 k3 A k2 A D B C D B C HA=HB=HC=HD

  17. 11 11 8 20 4 20 4 16 27 3 16 8 27 3 Example • Insert 3 into the AVL tree 8

  18. 11 11 8 20 5 20 4 16 27 4 16 8 27 5 Example • Insert 5 into the AVL tree 8

  19. AVL Trees: Exercise • Insertion order: • 10, 85, 15, 70, 20, 60, 30, 50, 65, 80, 90, 40, 5, 55

  20. Remove Operation in AVL Tree • Removing a node from an AVL Tree is the same as removing from a binary search tree. However, it may unbalance the tree. • Similar to insertion, starting from the removed node we check all the nodes in the path up to the root for the first unbalance node. • Use the appropriate single or double rotation to balance the tree. • May need to continue searching for unbalanced nodes all the way to the root.

  21. Deletion X in AVL Trees • Deletion: • Case 1: if X is a leaf, delete X • Case 2: if X has 1 child, use it to replace X • Case 3: if X has 2 children, replace X with its inorder predecessor (and recursively delete it) • Rebalancing

  22. Delete 55 (case 1) 60 20 70 10 40 65 85 80 90 5 15 30 50 55

  23. Delete 55 (case 1) 60 20 70 10 40 65 85 80 90 5 15 30 50 55

  24. Delete 50 (case 2) 60 20 70 10 40 65 85 80 90 5 15 30 50 55

  25. Delete 50 (case 2) 60 20 70 10 40 65 85 50 80 90 5 15 30 55

  26. prev Delete 60 (case 3) 60 20 70 10 40 65 85 80 90 5 15 30 50 55

  27. Delete 60 (case 3) 55 20 70 10 40 65 85 80 90 5 15 30 50

  28. prev Delete 55 (case 3) 55 20 70 10 40 65 85 80 90 5 15 30 50

  29. Delete 55 (case 3) 50 20 70 10 40 65 85 80 90 5 15 30

  30. prev Delete 50 (case 3) 50 20 70 10 40 65 85 80 90 5 15 30

  31. Delete 50 (case 3) 40 20 70 10 30 65 85 80 90 5 15

  32. prev Delete 40 (case 3) 40 20 70 10 30 65 85 80 90 5 15

  33. Delete 40 : Rebalancing 30 20 70 10 Case ? 65 85 80 90 5 15

  34. Delete 40: after rebalancing 30 10 70 20 65 85 5 80 90 15 Single rotation is preferred!

  35. Minimum Element in AVL Tree • An AVL Tree of height H has at least FH+3-1 nodes, where Fi is the i-th fibonacci number • S0 = 1 • S1 = 2 • SH = SH-1 + SH-2 + 1 SH-1 SH-2 H H-2 H-1

  36. AVL Tree: analysis (1)

  37. AVL Tree: analysis (2) • The depth of AVL Trees is at most logarithmic. • So, all of the operations on AVL trees are also logarithmic. • The worst-case height is at most 44 percent more than the minimum possible for binary trees.

  38. Summary • Find element, insert element, and remove element operations all have complexity O(log n) for worst case • Insert operation: top-down insertion and bottom up balancing

  39. Further Study • http://telaga.cs.ui.ac.id/WebKuliah/IKI10100/resources/animation/data-structure/avl/avltree.html • Section 19.4 of Weiss book

More Related