0% found this document useful (0 votes)
86 views

Data Structure

This document provides an overview of AVL trees and single rotations for maintaining balance during insertions. [1] AVL trees are self-balancing binary search trees where the heights of any node's left and right subtrees differ by at most one. This keeps the tree height O(log N) during insertions and deletions. [2] Single rotations are used to fix imbalances when an insertion occurs in a left-left or right-right configuration at a node. They involve rotating the tree at that node to restore the balance property. [3] However, single rotations alone cannot fix imbalances caused by left-right or right-left insertions, requiring a different technique called

Uploaded by

kokigokul
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
86 views

Data Structure

This document provides an overview of AVL trees and single rotations for maintaining balance during insertions. [1] AVL trees are self-balancing binary search trees where the heights of any node's left and right subtrees differ by at most one. This keeps the tree height O(log N) during insertions and deletions. [2] Single rotations are used to fix imbalances when an insertion occurs in a left-left or right-right configuration at a node. They involve rotating the tree at that node to restore the balance property. [3] However, single rotations alone cannot fix imbalances caused by left-right or right-left insertions, requiring a different technique called

Uploaded by

kokigokul
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 19

COMP171

Fall 2006

AVL-Trees (Part 1: Single Rotations)

Lecture 17-18
AVL Trees / Slide 2

Balance Binary Search Tree


 Worst case height of binary search tree: N-1
 Insertion, deletion can be O(N) in the worst case
 We want a tree with small height
 Height of a binary tree with N node is at least
(log N)
 Goal: keep the height of a binary search tree
O(log N)
 Balanced binary search trees
 Examples: AVL tree, red-black tree
AVL Trees / Slide 3

Balanced Tree?
 Suggestion 1: the left and right subtrees of
root have the same height
 But the left and right subtrees may be linear lists!
 Suggestion 2: every node must have left and
right subtrees of the same height
 Only complete binary trees satisfy
 Too rigid to be useful
 Our choice: for each node, the height of the
left and right subtrees can differ at most 1
AVL Trees / Slide 4

AVL Tree
 An AVL tree is a binary search tree in which
 for every node in the tree, the height of the left and
right subtrees differ by at most 1.
 Height of subtree: Max # of edges to a leaf
 Height of an empty subtree: -1
 Height of one node: 0
AVL tree AVL property
violated here
AVL Trees / Slide 5

AVL Tree with


Minimum Number of Nodes

N0 = 1 N1 = 2 N2 =4 N3 = N1+N2+1=7

height of left=?
Height right=?
AVL Trees / Slide 6

Smallest AVL tree


of height 7
Smallest AVL tree
of height 8

Smallest AVL tree of height 9


AVL Trees / Slide 7

Height of AVL Tree


 Denote Nh the minimum number of nodes in an AVL
tree of height h

 N0=0, N1 =2 (base)
Nh= Nh-1 + Nh-2 +1 (recursive relation)

 N > Nh= Nh-1 + Nh-2 +1


>2 Nh-2 >4 Nh-4 >…>2i Nh-2i
 If h is even, let i=h/2–1. The equation becomes N>2h/2-1N2
 N>2h/2-1x4  h=O(logN)
 If h is odd, let i=(h-1)/2. The equation becomes N>2(h-1)/2N1
 N>2(h-1)/2x2  h=O(logN)

 Thus, many operations (i.e. searching) on an AVL tree


will take O(log N) time
AVL Trees / Slide 8

Insertion in AVL Tree


 Basically follows insertion strategy of binary
search tree
 But may cause violation of AVL tree property
 Restore the destroyed balance condition if
needed

6 8

6
Insert 6
Original AVL tree Restore AVL property
Property violated
AVL Trees / Slide 9

Some Observations
 After an insertion, only nodes that are on the path
from the insertion point to the root might have their
balance altered
 Because only those nodes have their subtrees altered
 Rebalance the tree at the deepest such node
guarantees that the entire tree satisfies the AVL
property

6 8

6
Node 5,8,7 might Rebalance node 7
have balance altered guarantees the whole tree be AVL
AVL Trees / Slide 10

Different Cases for Rebalance


 Denote the node that must be rebalanced α
 Case 1: an insertion into the left subtree of the left
child of α
 Case 2: an insertion into the right subtree of the left
child of α
 Case 3: an insertion into the left subtree of the right
child of α
 Case 4: an insertion into the right subtree of the
right child of α
 Cases 1&4 are mirror image symmetries
with respect to α, as are cases 2&3
AVL Trees / Slide 11

Rotations
 Rebalance of AVL tree are done with simple
modification to tree, known as rotation
 Insertion occurs on the “outside” (i.e., left-left
or right-right) is fixed by single rotation of the
tree
 Insertion occurs on the “inside” (i.e., left-right
or right-left) is fixed by double rotation of the
tree
AVL Trees / Slide 12

Insertion Algorithm
 First, insert the new key as a new leaf just as in
ordinary binary search tree
 Then trace the path from the new leaf towards
the root. For each node x encountered, check if
heights of left(x) and right(x) differ by at most 1
 If yes, proceed to parent(x)
 If not, restructure by doing either a single rotation or
a double rotation
 Note: once we perform a rotation at a node x,
we won’t need to perform any rotation at any
ancestor of x.
AVL Trees / Slide 13

Single Rotation to Fix Case 1(left-left)

k2 violates

An insertion in subtree X, Solution: single rotation


AVL property violated at node k2

AVL-property quiz:
1. Can Y have the same height as the new X?
2. Can Y have the same height as Z?
AVL Trees / Slide 14

Single Rotation Case 1 Example

k2 k1

k1 X k2

X
AVL Trees / Slide 15

Single Rotation to Fix Case 4 (right-right)

k1 violates

An insertion in subtree Z

 Case 4 is a symmetric case to case 1


 Insertion takes O(Height of AVL Tree) time,
Single rotation takes O(1) time
AVL Trees / Slide 16

Single Rotation Example


 Sequentially insert 3, 2, 1, 4, 5, 6 to an AVL Tree
3
3 2 2 2
2
2 1 3 1 3 1 3
Insert 3, 2 1 Single rotation Insert 4
4 Insert 5,
Insert 1 4
violation at node 3
violation at node 3
2 2 5
4
1 4 1 4
2 5
3 5 3 5
1 3 6
Single rotation Insert 6,
violation at node 2 6 Single rotation
AVL Trees / Slide 17

 If we continue to insert 7, 16, 15, 14, 13, 12, 11, 10, 8, 9

4 4

2 5 2 6

1 3 6 1 3 5 7

Insert 7,
violation at node 5 7 Single rotation

4
4
2 6
2 6
What is the result?
1 3 5
1 3 5 7
Single rotation
Insert 16, fine 16 But….
Insert 15
Violation remains
violation at node 7 15
AVL Trees / Slide 18

Single Rotation Fails to fix Case 2&3

Case 2: violation in k2 because of Single rotation result


insertion in subtree Y
 Single rotation fails to fix case 2&3
 Take case 2 as an example (case 3 is a
symmetry to it )
 The problem is subtree Y is too deep
 Single rotation doesn’t make it any less deep
AVL Trees / Slide 19

Single Rotation Fails


 What shall we do?
 We need to rotate twice
 Double Rotation

You might also like