100% found this document useful (4 votes)
12K views

A Complete Guide For Building A AVL Tree

a complete guide for inserting & deleting nodes in a AVL Tree.........by following this tutorial any body new to data structure, can make a correct and complete AVL tree , which is generally a sore point for not only beginners also the pros.

Uploaded by

Suvayan
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 PDF, TXT or read online on Scribd
100% found this document useful (4 votes)
12K views

A Complete Guide For Building A AVL Tree

a complete guide for inserting & deleting nodes in a AVL Tree.........by following this tutorial any body new to data structure, can make a correct and complete AVL tree , which is generally a sore point for not only beginners also the pros.

Uploaded by

Suvayan
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 PDF, TXT or read online on Scribd
You are on page 1/ 5

1

Drawing an AVL TREE:-


Steps for insertion:-

1. Insert the numbers in Binary Search Tree (BST)


pattern.

2. Before the next number is inserted, perform the


following operations :-
a) Find out the balance factor of each node.

b) Balance Factor of a node = (Maximum number


of levels that can be reached in right sub-tree )
– ( Maximum number of levels that can be
reached in left sub tree )
[WE TAKE LEVEL OF THE STARTING NODE
AS 0]

c) If any of the Balance Factor is (-2) or (2),


perform required rotation according to the
algorithm given below. If two nodes have (2/-2)
then select the lowest node in level.

d) The tree now become balanced, i.e. no node


has Balance Factor (-2) or (2). Continue from
step 1.

Rotation Algorithm

[Right heavy (B.F. = 2), Left heavy (B.F. = -2)]

IF tree is right heavy (B.F. = 2)


{
IF tree's right sub tree is left heavy (B.F. = -2 / -1)
{
Perform Left-Right (LR) rotation
Suvayan – 9231937821 [email protected] Page | 1
2

}
ELSE
{
Perform Left rotation
}
}
ELSE IF tree is left heavy (B.F. = -2)
{
IF tree's left sub tree is right heavy (B.F. = 2 / 1)
{
Perform Right-Left Rotation (RL) rotation
}
ELSE
{
Perform Right rotation
}
}
ROTATIONS
Left – Left Case Right – Right Case
( Right Rotation ) ( Left Rotation )

Suvayan – 9231937821 [email protected] Page | 2


3

Left - Right Case ( LR Rotation )

Left rotation Right rotation

Right - Left Case ( RL Rotation )

Suvayan – 9231937821 [email protected] Page | 3


4

Right rotation Left rotation

AVL TREE showing the Balance Factor


2

0 -1

0 0

0
0

Steps for deletion:-

1. Delete the number in Binary Search Tree (BST)


pattern. This can be done by the following operations:-

a) If the node has no leaf node, just remove it from the


tree.

b) If the node has only one sub-tree (left/right), just


remove the node and replace it by its immediate
child node.

c) If the node has two sub-trees (left/right), remove the


Suvayan – 9231937821 [email protected] Page | 4
5

node and replace it by its immediate inorder


traversal node (i.e. the node that will be written just
after the deleted node in inorder traversal).
When the deletion of node and reordering of the tree
is done, continue from the next step.

2. Perform the following operations:-

a) Find out the balance factor of each node.

b) Balance Factor of a node = (Maximum number of


levels that can be reached in right sub-tree ) –
(Maximum number of levels that can be reached in
left sub tree) [WE TAKE LEVEL OF THE STARTING
NODE AS 0]

c) If any of the Balance Factor is (-2) or (2), perform


required rotation according to the algorithm given
above. If two nodes have (2/-2) then select the
lowest node in level. If no nodes have (2/-2) then
the AVL Tree is still balanced and no further
rearranging is not required.

Suvayan – 9231937821 [email protected] Page | 5

You might also like