SlideShare a Scribd company logo
1 of 43
AVL Trees
CSE 373
Data Structures
Lecture 8
12/26/03 AVL Trees - Lecture 2
Readings
• Reading
› Section 4.4,
12/26/03 AVL Trees - Lecture 3
Binary Search Tree - Best
Time
• All BST operations are O(d), where d is
tree depth
• minimum d is for a binary tree
with N nodes
› What is the best case tree?
› What is the worst case tree?
• So, best case running time of BST
operations is O(log N)
 
N
log
d 2

12/26/03 AVL Trees - Lecture 4
Binary Search Tree - Worst
Time
• Worst case running time is O(N)
› What happens when you Insert elements in
ascending order?
• Insert: 2, 4, 6, 8, 10, 12 into an empty BST
› Problem: Lack of “balance”:
• compare depths of left and right subtree
› Unbalanced degenerate tree
12/26/03 AVL Trees - Lecture 5
Balanced and unbalanced BST
4
2 5
1 3
1
5
2
4
3
7
6
4
2 6
5 7
1 3
Is this “balanced”?
12/26/03 AVL Trees - Lecture 6
Approaches to balancing trees
• Don't balance
› May end up with some nodes very deep
• Strict balance
› The tree must always be balanced perfectly
• Pretty good balance
› Only allow a little out of balance
• Adjust on access
› Self-adjusting
12/26/03 AVL Trees - Lecture 7
Balancing Binary Search
Trees
• Many algorithms exist for keeping
binary search trees balanced
› Adelson-Velskii and Landis (AVL) trees
(height-balanced trees)
› Splay trees and other self-adjusting trees
› B-trees and other multiway search trees
12/26/03 AVL Trees - Lecture 8
Perfect Balance
• Want a complete tree after every operation
› tree is full except possibly in the lower right
• This is expensive
› For example, insert 2 in the tree on the left and
then rebuild as a complete tree
Insert 2 &
complete tree
6
4 9
8
1 5
5
2 8
6 9
1 4
12/26/03 AVL Trees - Lecture 9
AVL - Good but not Perfect
Balance
• AVL trees are height-balanced binary
search trees
• Balance factor of a node
› height(left subtree) - height(right subtree)
• An AVL tree has balance factor calculated
at every node
› For every node, heights of left and right
subtree can differ by no more than 1
› Store current heights in each node
12/26/03 AVL Trees - Lecture 10
Height of an AVL Tree
• N(h) = minimum number of nodes in an
AVL tree of height h.
• Basis
› N(0) = 1, N(1) = 2
• Induction
› N(h) = N(h-1) + N(h-2) + 1
• Solution (recall Fibonacci analysis)
› N(h) > h (  1.62) h-1
h-2
h
12/26/03 AVL Trees - Lecture 11
Height of an AVL Tree
• N(h) > h (  1.62)
• Suppose we have n nodes in an AVL
tree of height h.
› n > N(h) (because N(h) was the minimum)
› n > h hence log n > h (relatively well
balanced tree!!)
› h < 1.44 log2n (i.e., Find takes O(logn))
12/26/03 AVL Trees - Lecture 12
Node Heights
1
0
0
2
0
6
4 9
8
1 5
1
height of node = h
balance factor = hleft-hright
empty height = -1
0
0
height=2 BF=1-0=1
0
6
4 9
1 5
1
Tree A (AVL) Tree B (AVL)
12/26/03 AVL Trees - Lecture 13
Node Heights after Insert 7
2
1
0
3
0
6
4 9
8
1 5
1
height of node = h
balance factor = hleft-hright
empty height = -1
1
0
2
0
6
4 9
1 5
1
0
7
0
7
balance factor
1-(-1) = 2
-1
Tree A (AVL) Tree B (not AVL)
12/26/03 AVL Trees - Lecture 14
Insert and Rotation in AVL
Trees
• Insert operation may cause balance factor
to become 2 or –2 for some node
› only nodes on the path from insertion point to
root node have possibly changed in height
› So after the Insert, go back up to the root
node by node, updating heights
› If a new balance factor (the difference hleft-
hright) is 2 or –2, adjust tree by rotation around
the node
12/26/03 AVL Trees - Lecture 15
Single Rotation in an AVL Tree
2
1
0
2
0
6
4 9
8
1 5
1
0
7
0
1
0
2
0
6
4
9
8
1 5
1
0
7
12/26/03 AVL Trees - Lecture 16
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.
Insertions in AVL Trees
12/26/03 AVL Trees - Lecture 17
j
k
X Y
Z
Consider a valid
AVL subtree
AVL Insertion: Outside Case
h
h
h
12/26/03 AVL Trees - Lecture 18
j
k
X
Y
Z
Inserting into X
destroys the AVL
property at node j
AVL Insertion: Outside Case
h
h+1 h
12/26/03 AVL Trees - Lecture 19
j
k
X
Y
Z
Do a “right rotation”
AVL Insertion: Outside Case
h
h+1 h
12/26/03 AVL Trees - Lecture 20
j
k
X
Y
Z
Do a “right rotation”
Single right rotation
h
h+1 h
12/26/03 AVL Trees - Lecture 21
j
k
X Y Z
“Right rotation” done!
(“Left rotation” is mirror
symmetric)
Outside Case Completed
AVL property has been restored!
h
h+1
h
12/26/03 AVL Trees - Lecture 22
j
k
X Y
Z
AVL Insertion: Inside Case
Consider a valid
AVL subtree
h
h
h
12/26/03 AVL Trees - Lecture 23
Inserting into Y
destroys the
AVL property
at node j
j
k
X
Y
Z
AVL Insertion: Inside Case
Does “right rotation”
restore balance?
h
h+1
h
12/26/03 AVL Trees - Lecture 24
j
k
X
Y
Z
“Right rotation”
does not restore
balance… now k is
out of balance
AVL Insertion: Inside Case
h
h+1
h
12/26/03 AVL Trees - Lecture 25
Consider the structure
of subtree Y… j
k
X
Y
Z
AVL Insertion: Inside Case
h
h+1
h
12/26/03 AVL Trees - Lecture 26
j
k
X
V
Z
W
i
Y = node i and
subtrees V and W
AVL Insertion: Inside Case
h
h+1
h
h or h-1
12/26/03 AVL Trees - Lecture 27
j
k
X
V
Z
W
i
AVL Insertion: Inside Case
We will do a left-right
“double rotation” . . .
12/26/03 AVL Trees - Lecture 28
j
k
X V
Z
W
i
Double rotation : first rotation
left rotation complete
12/26/03 AVL Trees - Lecture 29
j
k
X V
Z
W
i
Double rotation : second
rotation
Now do a right rotation
12/26/03 AVL Trees - Lecture 30
j
k
X V Z
W
i
Double rotation : second
rotation
right rotation complete
Balance has been
restored
h
h h or h-1
12/26/03 AVL Trees - Lecture 31
Implementation
balance (1,0,-1)
key
right
left
No need to keep the height; just the difference in height,
i.e. the balance factor; this has to be modified on the path of
insertion even if you don’t perform rotations
Once you have performed a rotation (single or double) you won’t
need to go back up the tree
12/26/03 AVL Trees - Lecture 32
Single Rotation
RotateFromRight(n : reference node pointer) {
p : node pointer;
p := n.right;
n.right := p.left;
p.left := n;
n := p
}
X
Y Z
n
You also need to
modify the heights
or balance factors
of n and p
Insert
12/26/03 AVL Trees - Lecture 33
Double Rotation
• Implement Double Rotation in two lines.
DoubleRotateFromRight(n : reference node pointer) {
????
}
X
n
V W
Z
12/26/03 AVL Trees - Lecture 34
Insertion in AVL Trees
• Insert at the leaf (as for all BST)
› only nodes on the path from insertion point to
root node have possibly changed in height
› So after the Insert, go back up to the root
node by node, updating heights
› If a new balance factor (the difference hleft-
hright) is 2 or –2, adjust tree by rotation around
the node
12/26/03 AVL Trees - Lecture 35
Insert in BST
Insert(T : reference tree pointer, x : element) : integer {
if T = null then
T := new tree; T.data := x; return 1;//the links to
//children are null
case
T.data = x : return 0; //Duplicate do nothing
T.data > x : return Insert(T.left, x);
T.data < x : return Insert(T.right, x);
endcase
}
12/26/03 AVL Trees - Lecture 36
Insert in AVL trees
Insert(T : reference tree pointer, x : element) : {
if T = null then
{T := new tree; T.data := x; height := 0; return;}
case
T.data = x : return ; //Duplicate do nothing
T.data > x : Insert(T.left, x);
if ((height(T.left)- height(T.right)) = 2){
if (T.left.data > x ) then //outside case
T = RotatefromLeft (T);
else //inside case
T = DoubleRotatefromLeft (T);}
T.data < x : Insert(T.right, x);
code similar to the left case
Endcase
T.height := max(height(T.left),height(T.right)) +1;
return;
}
12/26/03 AVL Trees - Lecture 37
Example of Insertions in an
AVL Tree
1
0
2
20
10 30
25
0
35
0
Insert 5, 40
12/26/03 AVL Trees - Lecture 38
Example of Insertions in an
AVL Tree
1
0
2
20
10 30
25
1
35
0
5
0
20
10 30
25
1
35
5
40
0
0
0
1
2
3
Now Insert 45
12/26/03 AVL Trees - Lecture 39
Single rotation (outside case)
2
0
3
20
10 30
25
1
35
2
5
0
20
10 30
25
1
40
5
40
0
0
0
1
2
3
45
Imbalance
35 45
0 0
1
Now Insert 34
12/26/03 AVL Trees - Lecture 40
Double rotation (inside case)
3
0
3
20
10 30
25
1
40
2
5
0
20
10 35
30
1
40
5
45
0 1
2
3
Imbalance
45
0
1
Insertion of 34
35
34
0
0
1 25 34
0
12/26/03 AVL Trees - Lecture 41
AVL Tree Deletion
• Similar but more complex than insertion
› Rotations and double rotations needed to
rebalance
› Imbalance may propagate upward so that
many rotations may be needed.
12/26/03 AVL Trees - Lecture 42
Arguments for AVL trees:
1. Search is O(log N) since AVL trees are always balanced.
2. Insertion and deletions are also O(logn)
3. The height balancing adds no more than a constant factor to the
speed of insertion.
Arguments against using AVL trees:
1. Difficult to program & debug; more space for balance factor.
2. Asymptotically faster but rebalancing costs time.
3. Most large searches are done in database systems on disk and use
other structures (e.g. B-trees).
4. May be OK to have O(N) for a single operation if total run time for
many consecutive operations is fast (e.g. Splay trees).
Pros and Cons of AVL Trees
12/26/03 AVL Trees - Lecture 43
Double Rotation Solution
DoubleRotateFromRight(n : reference node pointer) {
RotateFromLeft(n.right);
RotateFromRight(n);
}
X
n
V W
Z

More Related Content

Similar to avl.ppt

Similar to avl.ppt (20)

Design data Analysis Avl Trees.pptx by piyush sir
Design data Analysis Avl Trees.pptx by piyush sirDesign data Analysis Avl Trees.pptx by piyush sir
Design data Analysis Avl Trees.pptx by piyush sir
 
Avl tree
Avl treeAvl tree
Avl tree
 
Ie
IeIe
Ie
 
AVL Tree.ppt
AVL Tree.pptAVL Tree.ppt
AVL Tree.ppt
 
AVL Tree.pptx
AVL Tree.pptxAVL Tree.pptx
AVL Tree.pptx
 
Adelson velskii Landis rotations based on
Adelson velskii Landis rotations based onAdelson velskii Landis rotations based on
Adelson velskii Landis rotations based on
 
Data structures trees and graphs - AVL tree.pptx
Data structures trees and graphs - AVL  tree.pptxData structures trees and graphs - AVL  tree.pptx
Data structures trees and graphs - AVL tree.pptx
 
Avl tree detailed
Avl tree detailedAvl tree detailed
Avl tree detailed
 
9 chapter4 trees_avl
9 chapter4 trees_avl9 chapter4 trees_avl
9 chapter4 trees_avl
 
Av ltrees
Av ltreesAv ltrees
Av ltrees
 
Lecture 10 - AVL Trees.pdf
Lecture 10 - AVL Trees.pdfLecture 10 - AVL Trees.pdf
Lecture 10 - AVL Trees.pdf
 
4. avl
4. avl4. avl
4. avl
 
AVL_Trees using DSA concepts and how to do
AVL_Trees using DSA concepts and how to doAVL_Trees using DSA concepts and how to do
AVL_Trees using DSA concepts and how to do
 
Avl trees
Avl treesAvl trees
Avl trees
 
Trees, Binary Search Tree, AVL Tree in Data Structures
Trees, Binary Search Tree, AVL Tree in Data Structures Trees, Binary Search Tree, AVL Tree in Data Structures
Trees, Binary Search Tree, AVL Tree in Data Structures
 
Lect 13, 14 (final)AVL Tree and Rotations.pdf
Lect 13, 14 (final)AVL Tree and Rotations.pdfLect 13, 14 (final)AVL Tree and Rotations.pdf
Lect 13, 14 (final)AVL Tree and Rotations.pdf
 
avl insertion-rotation
avl insertion-rotationavl insertion-rotation
avl insertion-rotation
 
AVL_Trees.ppt
AVL_Trees.pptAVL_Trees.ppt
AVL_Trees.ppt
 
Study about AVL Tree & Operations
Study about AVL Tree & OperationsStudy about AVL Tree & Operations
Study about AVL Tree & Operations
 
AVL-Trees.pptx
AVL-Trees.pptxAVL-Trees.pptx
AVL-Trees.pptx
 

More from plagcheck

ch10_EffiBinSearchTrees.ppt
ch10_EffiBinSearchTrees.pptch10_EffiBinSearchTrees.ppt
ch10_EffiBinSearchTrees.pptplagcheck
 
BinarySearchTrees.ppt
BinarySearchTrees.pptBinarySearchTrees.ppt
BinarySearchTrees.pptplagcheck
 
dokumen.tips_binary-search-tree-5698bcbd37e20.ppt
dokumen.tips_binary-search-tree-5698bcbd37e20.pptdokumen.tips_binary-search-tree-5698bcbd37e20.ppt
dokumen.tips_binary-search-tree-5698bcbd37e20.pptplagcheck
 
BinarySearchTrees (1).ppt
BinarySearchTrees (1).pptBinarySearchTrees (1).ppt
BinarySearchTrees (1).pptplagcheck
 
avl-tree-animation.ppt
avl-tree-animation.pptavl-tree-animation.ppt
avl-tree-animation.pptplagcheck
 
15-btrees.ppt
15-btrees.ppt15-btrees.ppt
15-btrees.pptplagcheck
 
chapt10b.ppt
chapt10b.pptchapt10b.ppt
chapt10b.pptplagcheck
 
Topic19BinarySearchTrees.ppt
Topic19BinarySearchTrees.pptTopic19BinarySearchTrees.ppt
Topic19BinarySearchTrees.pptplagcheck
 
Unit14_BinarySearchTree.ppt
Unit14_BinarySearchTree.pptUnit14_BinarySearchTree.ppt
Unit14_BinarySearchTree.pptplagcheck
 

More from plagcheck (10)

ch10_EffiBinSearchTrees.ppt
ch10_EffiBinSearchTrees.pptch10_EffiBinSearchTrees.ppt
ch10_EffiBinSearchTrees.ppt
 
BinarySearchTrees.ppt
BinarySearchTrees.pptBinarySearchTrees.ppt
BinarySearchTrees.ppt
 
dokumen.tips_binary-search-tree-5698bcbd37e20.ppt
dokumen.tips_binary-search-tree-5698bcbd37e20.pptdokumen.tips_binary-search-tree-5698bcbd37e20.ppt
dokumen.tips_binary-search-tree-5698bcbd37e20.ppt
 
BinarySearchTrees (1).ppt
BinarySearchTrees (1).pptBinarySearchTrees (1).ppt
BinarySearchTrees (1).ppt
 
bst.ppt
bst.pptbst.ppt
bst.ppt
 
avl-tree-animation.ppt
avl-tree-animation.pptavl-tree-animation.ppt
avl-tree-animation.ppt
 
15-btrees.ppt
15-btrees.ppt15-btrees.ppt
15-btrees.ppt
 
chapt10b.ppt
chapt10b.pptchapt10b.ppt
chapt10b.ppt
 
Topic19BinarySearchTrees.ppt
Topic19BinarySearchTrees.pptTopic19BinarySearchTrees.ppt
Topic19BinarySearchTrees.ppt
 
Unit14_BinarySearchTree.ppt
Unit14_BinarySearchTree.pptUnit14_BinarySearchTree.ppt
Unit14_BinarySearchTree.ppt
 

Recently uploaded

Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...roncy bisnoi
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Dr.Costas Sachpazis
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlysanyuktamishra911
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)simmis5
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduitsrknatarajan
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...ranjana rawat
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performancesivaprakash250
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSISrknatarajan
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 

Recently uploaded (20)

Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 

avl.ppt

  • 1. AVL Trees CSE 373 Data Structures Lecture 8
  • 2. 12/26/03 AVL Trees - Lecture 2 Readings • Reading › Section 4.4,
  • 3. 12/26/03 AVL Trees - Lecture 3 Binary Search Tree - Best Time • All BST operations are O(d), where d is tree depth • minimum d is for a binary tree with N nodes › What is the best case tree? › What is the worst case tree? • So, best case running time of BST operations is O(log N)   N log d 2 
  • 4. 12/26/03 AVL Trees - Lecture 4 Binary Search Tree - Worst Time • Worst case running time is O(N) › What happens when you Insert elements in ascending order? • Insert: 2, 4, 6, 8, 10, 12 into an empty BST › Problem: Lack of “balance”: • compare depths of left and right subtree › Unbalanced degenerate tree
  • 5. 12/26/03 AVL Trees - Lecture 5 Balanced and unbalanced BST 4 2 5 1 3 1 5 2 4 3 7 6 4 2 6 5 7 1 3 Is this “balanced”?
  • 6. 12/26/03 AVL Trees - Lecture 6 Approaches to balancing trees • Don't balance › May end up with some nodes very deep • Strict balance › The tree must always be balanced perfectly • Pretty good balance › Only allow a little out of balance • Adjust on access › Self-adjusting
  • 7. 12/26/03 AVL Trees - Lecture 7 Balancing Binary Search Trees • Many algorithms exist for keeping binary search trees balanced › Adelson-Velskii and Landis (AVL) trees (height-balanced trees) › Splay trees and other self-adjusting trees › B-trees and other multiway search trees
  • 8. 12/26/03 AVL Trees - Lecture 8 Perfect Balance • Want a complete tree after every operation › tree is full except possibly in the lower right • This is expensive › For example, insert 2 in the tree on the left and then rebuild as a complete tree Insert 2 & complete tree 6 4 9 8 1 5 5 2 8 6 9 1 4
  • 9. 12/26/03 AVL Trees - Lecture 9 AVL - Good but not Perfect Balance • AVL trees are height-balanced binary search trees • Balance factor of a node › height(left subtree) - height(right subtree) • An AVL tree has balance factor calculated at every node › For every node, heights of left and right subtree can differ by no more than 1 › Store current heights in each node
  • 10. 12/26/03 AVL Trees - Lecture 10 Height of an AVL Tree • N(h) = minimum number of nodes in an AVL tree of height h. • Basis › N(0) = 1, N(1) = 2 • Induction › N(h) = N(h-1) + N(h-2) + 1 • Solution (recall Fibonacci analysis) › N(h) > h (  1.62) h-1 h-2 h
  • 11. 12/26/03 AVL Trees - Lecture 11 Height of an AVL Tree • N(h) > h (  1.62) • Suppose we have n nodes in an AVL tree of height h. › n > N(h) (because N(h) was the minimum) › n > h hence log n > h (relatively well balanced tree!!) › h < 1.44 log2n (i.e., Find takes O(logn))
  • 12. 12/26/03 AVL Trees - Lecture 12 Node Heights 1 0 0 2 0 6 4 9 8 1 5 1 height of node = h balance factor = hleft-hright empty height = -1 0 0 height=2 BF=1-0=1 0 6 4 9 1 5 1 Tree A (AVL) Tree B (AVL)
  • 13. 12/26/03 AVL Trees - Lecture 13 Node Heights after Insert 7 2 1 0 3 0 6 4 9 8 1 5 1 height of node = h balance factor = hleft-hright empty height = -1 1 0 2 0 6 4 9 1 5 1 0 7 0 7 balance factor 1-(-1) = 2 -1 Tree A (AVL) Tree B (not AVL)
  • 14. 12/26/03 AVL Trees - Lecture 14 Insert and Rotation in AVL Trees • Insert operation may cause balance factor to become 2 or –2 for some node › only nodes on the path from insertion point to root node have possibly changed in height › So after the Insert, go back up to the root node by node, updating heights › If a new balance factor (the difference hleft- hright) is 2 or –2, adjust tree by rotation around the node
  • 15. 12/26/03 AVL Trees - Lecture 15 Single Rotation in an AVL Tree 2 1 0 2 0 6 4 9 8 1 5 1 0 7 0 1 0 2 0 6 4 9 8 1 5 1 0 7
  • 16. 12/26/03 AVL Trees - Lecture 16 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. Insertions in AVL Trees
  • 17. 12/26/03 AVL Trees - Lecture 17 j k X Y Z Consider a valid AVL subtree AVL Insertion: Outside Case h h h
  • 18. 12/26/03 AVL Trees - Lecture 18 j k X Y Z Inserting into X destroys the AVL property at node j AVL Insertion: Outside Case h h+1 h
  • 19. 12/26/03 AVL Trees - Lecture 19 j k X Y Z Do a “right rotation” AVL Insertion: Outside Case h h+1 h
  • 20. 12/26/03 AVL Trees - Lecture 20 j k X Y Z Do a “right rotation” Single right rotation h h+1 h
  • 21. 12/26/03 AVL Trees - Lecture 21 j k X Y Z “Right rotation” done! (“Left rotation” is mirror symmetric) Outside Case Completed AVL property has been restored! h h+1 h
  • 22. 12/26/03 AVL Trees - Lecture 22 j k X Y Z AVL Insertion: Inside Case Consider a valid AVL subtree h h h
  • 23. 12/26/03 AVL Trees - Lecture 23 Inserting into Y destroys the AVL property at node j j k X Y Z AVL Insertion: Inside Case Does “right rotation” restore balance? h h+1 h
  • 24. 12/26/03 AVL Trees - Lecture 24 j k X Y Z “Right rotation” does not restore balance… now k is out of balance AVL Insertion: Inside Case h h+1 h
  • 25. 12/26/03 AVL Trees - Lecture 25 Consider the structure of subtree Y… j k X Y Z AVL Insertion: Inside Case h h+1 h
  • 26. 12/26/03 AVL Trees - Lecture 26 j k X V Z W i Y = node i and subtrees V and W AVL Insertion: Inside Case h h+1 h h or h-1
  • 27. 12/26/03 AVL Trees - Lecture 27 j k X V Z W i AVL Insertion: Inside Case We will do a left-right “double rotation” . . .
  • 28. 12/26/03 AVL Trees - Lecture 28 j k X V Z W i Double rotation : first rotation left rotation complete
  • 29. 12/26/03 AVL Trees - Lecture 29 j k X V Z W i Double rotation : second rotation Now do a right rotation
  • 30. 12/26/03 AVL Trees - Lecture 30 j k X V Z W i Double rotation : second rotation right rotation complete Balance has been restored h h h or h-1
  • 31. 12/26/03 AVL Trees - Lecture 31 Implementation balance (1,0,-1) key right left No need to keep the height; just the difference in height, i.e. the balance factor; this has to be modified on the path of insertion even if you don’t perform rotations Once you have performed a rotation (single or double) you won’t need to go back up the tree
  • 32. 12/26/03 AVL Trees - Lecture 32 Single Rotation RotateFromRight(n : reference node pointer) { p : node pointer; p := n.right; n.right := p.left; p.left := n; n := p } X Y Z n You also need to modify the heights or balance factors of n and p Insert
  • 33. 12/26/03 AVL Trees - Lecture 33 Double Rotation • Implement Double Rotation in two lines. DoubleRotateFromRight(n : reference node pointer) { ???? } X n V W Z
  • 34. 12/26/03 AVL Trees - Lecture 34 Insertion in AVL Trees • Insert at the leaf (as for all BST) › only nodes on the path from insertion point to root node have possibly changed in height › So after the Insert, go back up to the root node by node, updating heights › If a new balance factor (the difference hleft- hright) is 2 or –2, adjust tree by rotation around the node
  • 35. 12/26/03 AVL Trees - Lecture 35 Insert in BST Insert(T : reference tree pointer, x : element) : integer { if T = null then T := new tree; T.data := x; return 1;//the links to //children are null case T.data = x : return 0; //Duplicate do nothing T.data > x : return Insert(T.left, x); T.data < x : return Insert(T.right, x); endcase }
  • 36. 12/26/03 AVL Trees - Lecture 36 Insert in AVL trees Insert(T : reference tree pointer, x : element) : { if T = null then {T := new tree; T.data := x; height := 0; return;} case T.data = x : return ; //Duplicate do nothing T.data > x : Insert(T.left, x); if ((height(T.left)- height(T.right)) = 2){ if (T.left.data > x ) then //outside case T = RotatefromLeft (T); else //inside case T = DoubleRotatefromLeft (T);} T.data < x : Insert(T.right, x); code similar to the left case Endcase T.height := max(height(T.left),height(T.right)) +1; return; }
  • 37. 12/26/03 AVL Trees - Lecture 37 Example of Insertions in an AVL Tree 1 0 2 20 10 30 25 0 35 0 Insert 5, 40
  • 38. 12/26/03 AVL Trees - Lecture 38 Example of Insertions in an AVL Tree 1 0 2 20 10 30 25 1 35 0 5 0 20 10 30 25 1 35 5 40 0 0 0 1 2 3 Now Insert 45
  • 39. 12/26/03 AVL Trees - Lecture 39 Single rotation (outside case) 2 0 3 20 10 30 25 1 35 2 5 0 20 10 30 25 1 40 5 40 0 0 0 1 2 3 45 Imbalance 35 45 0 0 1 Now Insert 34
  • 40. 12/26/03 AVL Trees - Lecture 40 Double rotation (inside case) 3 0 3 20 10 30 25 1 40 2 5 0 20 10 35 30 1 40 5 45 0 1 2 3 Imbalance 45 0 1 Insertion of 34 35 34 0 0 1 25 34 0
  • 41. 12/26/03 AVL Trees - Lecture 41 AVL Tree Deletion • Similar but more complex than insertion › Rotations and double rotations needed to rebalance › Imbalance may propagate upward so that many rotations may be needed.
  • 42. 12/26/03 AVL Trees - Lecture 42 Arguments for AVL trees: 1. Search is O(log N) since AVL trees are always balanced. 2. Insertion and deletions are also O(logn) 3. The height balancing adds no more than a constant factor to the speed of insertion. Arguments against using AVL trees: 1. Difficult to program & debug; more space for balance factor. 2. Asymptotically faster but rebalancing costs time. 3. Most large searches are done in database systems on disk and use other structures (e.g. B-trees). 4. May be OK to have O(N) for a single operation if total run time for many consecutive operations is fast (e.g. Splay trees). Pros and Cons of AVL Trees
  • 43. 12/26/03 AVL Trees - Lecture 43 Double Rotation Solution DoubleRotateFromRight(n : reference node pointer) { RotateFromLeft(n.right); RotateFromRight(n); } X n V W Z