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

Data Structure and Algorithms - AVL TREES

AVL trees are self-balancing binary search trees that ensure the heights of the left and right subtrees differ by no more than 1. This balancing property is achieved through rotations when nodes are inserted or removed. There are four types of rotations - left, right, left-right, and right-left - that are used to balance the tree and maintain its height difference of 1 or less.

Uploaded by

Good Vibes
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views

Data Structure and Algorithms - AVL TREES

AVL trees are self-balancing binary search trees that ensure the heights of the left and right subtrees differ by no more than 1. This balancing property is achieved through rotations when nodes are inserted or removed. There are four types of rotations - left, right, left-right, and right-left - that are used to balance the tree and maintain its height difference of 1 or less.

Uploaded by

Good Vibes
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Data Structure and Algorithms

AVL Trees
What if the input to binary search tree comes in a sorted (ascending or
descending) manner? It will then look like this –

It is observed that BST's worst-case performance is closest to linear search


algorithms, that is Ο(n). In real-time data, we cannot predict data pattern
and their frequencies. So, a need arises to balance out the existing BST.

Named after their inventor Adelson, Velski & Landis, AVL trees are
height balancing binary search tree. AVL tree checks the height of the left
and the right sub-trees and assures that the difference is not more than 1.
This difference is called the Balance Factor.

Here we see that the first tree is balanced and the next two trees are not
balanced −
In the second tree, the left subtree of C has height 2 and the right subtree
has height 0, so the difference is 2. In the third tree, the right subtree
of A has height 2 and the left is missing, so it is 0, and the difference is 2
again. AVL tree permits difference (balance factor) to be only 1.
BalanceFactor = height(left-sutree) − height(right-sutree)

If the difference in the height of left and right sub-trees is more than 1, the
tree is balanced using some rotation techniques.

AVL Rotations
To balance itself, an AVL tree may perform the following four kinds of
rotations −

 Left rotation

 Right rotation

 Left-Right rotation

 Right-Left rotation

The first two rotations are single rotations and the next two rotations are
double rotations. To have an unbalanced tree, we at least need a tree of
height 2. With this simple tree, let's understand them one by one.

Left Rotation
If a tree becomes unbalanced, when a node is inserted into the right
subtree of the right subtree, then we perform a single left rotation −
In our example, node A has become unbalanced as a node is inserted in the
right subtree of A's right subtree. We perform the left rotation by
making A the left-subtree of B.

Right Rotation
AVL tree may become unbalanced, if a node is inserted in the left subtree of
the left subtree. The tree then needs a right rotation.

As depicted, the unbalanced node becomes the right child of its left child by
performing a right rotation.

Left-Right Rotation
Double rotations are slightly complex version of already explained versions
of rotations. To understand them better, we should take note of each action
performed while rotation. Let's first check how to perform Left-Right
rotation. A left-right rotation is a combination of left rotation followed by
right rotation
Right-Left Rotation
The second type of double rotation is Right-Left Rotation. It is a
combination of right rotation followed by left rotation.

You might also like