Download presentation

Presentation is loading. Please wait.

Published byZachariah Hardwick Modified over 3 years ago

1
CS261 Data Structures AVL Trees

2
Goals Pros/Cons of a BST AVL Solution – Height-Balanced Trees

3
Binary Search Tree: Balance 5025753560853045658020

4
Binary Search Tree: Balance 5075859092

5
Complete Binary Trees Very costly to maintain a complete binary tree AlexAbnerAngelaAdelaAliceAdamAbigail Add Adam to tree

6
Height-Balanced BST For each node, the height difference between the left and right subtrees is at most one Trees are locally balanced, but globally they can be slightly more unbalanced Null child height = -1 3 (3) 9 (0) 1 (0) 8 (2) 2 (1) 4 (0) 5 (1) 6 (0) Height-Balanced Tree

7
Quiz Are these trees height balanced? If not, which node is out of balance? 32325040165070601655

8
Quiz Are these trees height balanced? If not, which node is out of balance? 1001601505015510013012050115110

9
Height-Balanced Trees Mathematically, the longest path in a height- balanced tree has been shown to be, at worst, 44% longer than log n Therefore, algorithms on height-balanced trees that run in time proportional to the path length are still O(log n) So.....How do we maintain height balance??

10
AVL Trees Named after the inventors ’ initials: G.M. Adelson-Velskii, E.M. Landis Maintain the height balanced property of a BST through a series of rotations When unbalanced, performs a “ rotation ” to balance the tree 1 (2) Node data Height field 3 (0) 2 (1) 1 (2) 3 (0) 1 (0) 2 (1) Rotate left Unbalanced node

11
Two Cases to Remember (Mirror for Right) 1 2 1 2 After operation 1 2 1 2 Heavy left child becomes heavy itself on the left! (Single Rot) Heavy left child becomes heavy itself on the left! (Single Rot) unbalanced Heavy left child becomes heavy itself on the right ! (Double Rot) Heavy left child becomes heavy itself on the right ! (Double Rot)

12
Fix with Rotations… 3 (0) 2 (1) 1 (2)

13
Case 1: Single Rotation 3 (0) 2 (1) 1 (2) 3 (0) 1 (0) 2 (1) Rotate left Unbalanced “top” node

14
Case 1: Single Rotation Example 2 1 (0) 2 (3) 6 (0) 3 (0) 4 (2) 5 (1) 1 (0) 2 (1) 6 (0) 3 (0) 4 (2) 5 (1) Rotate left Unbalanced “ top ” node New “ top ” node

15
AVL Trees: Rotation Pseudocode Pseudocode to rotate current ( “ top ” ) node left: 1.New top node is the current top node’s right child 2.Current node ’ s new right child is the new top node ’ s left child 3.New top ’ s left child is the current node 4.Set height of current node 5.Set height of new top node 6.Return new top node 1 (0) 2 (3) 6 (0) 3 (0) 4 (2) 5 (1) 1 (0) 2 (1) 6 (0) 3 (0) 4 (2) 5 (1) Rotate left “Current” top node “New” top node

16
Case 2: Double Rotation Sometimes a single rotation will not fix the problem : – Can happen when an insertion is made on the left (or right) side of a node that is itself a heavy right (or left) child 2 1 Unbalanced node 3 “ Heavy ” right child 2 (0) 3 (2) 1 (1) Rotate left Doesn ’ t work!!!

17
Case 2: Double Rotation Fortunately, this case is easily handled by rotating the child before the regular rotation: 1.First rotate the heavy right (or left) child to the right (or left) 2.Rotate the unbalanced node to the left (or right) 2 (0) 1 (2) Unbalanced node 3 (1) “ Heavy ” right child Rotate heavy child right 3 (0) 2 (1) 1 (2) 3 (0) 1 (0) 2 (1) Rotate unbalanced node left

18
Case 1: Single Rotation (another view) 1 2 1 2 Have a node (2) that is heavy on the left (1) Operation makes (2) unbalanced and that heavy child heavy on left After Insertion

19
Case 1: Single Rotation 1 2 2 1 Single rotation fixes the problem Single Rotation

20
Case 2: Double Rotation 1 3 1 3 Have a node (3) with a heavy left child (1) Operation makes (3) unbalanced and (1) is heavy on the right After Deletion 2 2

21
Case 2: Double Rotation 1 3 First, rotate heavy child (1) to the left After Rotation 1 2 1 3 2

22
Case 2: Double Rotation Next, rotate unbalanced node (3) to the right After Rotation 2 1 3 2 1 3 2

23
AVL Trees: Balacing Pseudocode Balancing pseudocode (to rebalance an unbalanced node) : If left child is tallest (by more than 1): If left child is heavy on the right side: // Double rotation needed. Rotate the left child to the left Rotate unbalanced “top” node to the right Else if right child is tallest(by more than 1) If right child is heavy on the left side: // Double rotation needed. Rotate the right child to the right Rotate unbalanced “top” node to the left Return new “ top” node

24
Rotations Can be the result of additions or removals All cases hold for the “right” side as well, just replace all lefts with rights and all rights with lefts

25
3 (3) 9 (0) 1 (0) 8 (2) 2 (1) 4 (0) 5 (1) 6 (0) More Examples… Add data: 7 Balanced Tree “ Heavy ” left child Unbalanced Tree 3 (4) 9 (0) 1 (0) 8 (3) 2 (1) 4 (0) 5 (2) 7 (0) 6 (1) Added to right side of heavy left child Unbalanced “top”node

26
Tree Still Unbalanced 3 (4) 9 (0) 1 (0) 8 (3) 2 (1) 4 (0) 5 (2) 7 (0) 6 (1) Single rotation AVL Trees: Double Rotation Example Unbalanced Tree 3 (4) 1 (0) 2 (1) 7 (0) 6 (1) 9 (0) 8 (2) 5 (3) 4 (0) Unbalanced “ top ” node (still)

27
Tree Still Unbalanced, but … Rotate heavy child AVL Trees: Double Rotation Example “ Heavy ” left child 3 (4) 9 (0) 1 (0) 8 (3) 2 (1) 4 (0) 5 (1) 7 (0) 6 (2) 3 (4) 9 (0) 1 (0) 8 (3) 2 (1) 4 (0) 5 (2) 7 (0) 6 (1) Unbalanced Tree

28
Tree Now Balanced Rotate top node AVL Trees: Double Rotation Example Unbalanced Tree (after 1 st rotation) 3 (3) 1 (0) 2 (1) 7 (0) 3 (4) 9 (0) 1 (0) 8 (3) 2 (1) 4 (0) 5 (1) 7 (0) 6 (2) Unbalanced “ top ” node 4 (0) 5 (1) 6 (2) 9 (0) 8 (1)

29
Your Turn Worksheet: AVL Practice

Similar presentations

OK

CS 146: Data Structures and Algorithms June 23 Class Meeting Department of Computer Science San Jose State University Summer 2015 Instructor: Ron Mak www.cs.sjsu.edu/~mak.

CS 146: Data Structures and Algorithms June 23 Class Meeting Department of Computer Science San Jose State University Summer 2015 Instructor: Ron Mak www.cs.sjsu.edu/~mak.

© 2018 SlidePlayer.com Inc.

All rights reserved.

To ensure the functioning of the site, we use **cookies**. We share information about your activities on the site with our partners and Google partners: social networks and companies engaged in advertising and web analytics. For more information, see the Privacy Policy and Google Privacy & Terms.
Your consent to our cookies if you continue to use this website.

Ads by Google

Download ppt on rise of hitler Ppt on grease lubrication pump Ppt on switching network Ppt on management by objectives process Ppt on bluetooth based smart sensor networks definition Best ppt on bill gates Ppt on data collection methods statistics Ppt on highlights of companies act 2013 Ppt on world diabetes day facebook Ppt on architectural heritage of india