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

AVL Tree: Made By: Pulkit Aggarwal 755/IT/12

An AVL tree is a self-balancing binary search tree that ensures the heights of the two child subtrees of any node differ by at most one. It maintains this balance property during insertion and deletion operations using single or double rotations. Rotations are performed to restore balance when the insertion or deletion of a node causes the heights of child subtrees to differ by more than one. This keeps the tree balanced and maintains searching, insertion, and deletion operations at an optimal O(log n) time complexity.

Uploaded by

Pulkit Aggarwal
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)
131 views

AVL Tree: Made By: Pulkit Aggarwal 755/IT/12

An AVL tree is a self-balancing binary search tree that ensures the heights of the two child subtrees of any node differ by at most one. It maintains this balance property during insertion and deletion operations using single or double rotations. Rotations are performed to restore balance when the insertion or deletion of a node causes the heights of child subtrees to differ by more than one. This keeps the tree balanced and maintains searching, insertion, and deletion operations at an optimal O(log n) time complexity.

Uploaded by

Pulkit Aggarwal
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/ 22

AVL Tree

Made By : Pulkit Aggarwal 755/IT/12

An AVL Tree (Adelson-Velskii and Landis Tree) is a binary search tree with a balance condition. It must be easy to maintain, and it ensures that the depth of the tree is O (log N).

Balance Condition for AVL Trees


BST with every node satisfying the property that the heights of left and right subtrees can differ only by one.

Concept
Lets try to insert 6 into the AVL tree below. This would destroy the AVL property of the tree. Then this property has to be restored before the insertion step is considered over.

It turns out that this can always be done with a simple modification to the tree known as rotation. After an insertion, only the nodes that are on the path from the insertion point to the root might have their balance altered. As we follow the path up to the root and update the balancing information there may exist nodes whose new balance violates the AVL condition.

Rotation AVL Tree Rotations


Lets call the node to be balanced . There are four cases to be considered for a violation: 1) An insertion into left subtree of the left child of . (LL) 2) An insertion into right subtree of the left child of . (LR) 3) An insertion into left subtree of the right child of . (RL) 4) An insertion into right subtree of the right child of . (RR) Case I (LL, RR) (insertion occurs on the outside) is fixed by a single rotation. Case II (RL, LR) (insertion occurs on the inside) is fixed by double rotation.
6

Single Rotation(Left-Left)
Let k2 be the first node on the path up violating AVL balance property.Subtree X has grown an extra level (2 levels deeper than Z now). Y cannot be at the same level as X (k2 then out of balance before insertion) and Y cannot be at the same level as Z (then k1 would be the first to violate).

Single Rotation (LL)

Single Rotation(Right-Right)
Let k1 be the first node on the path up violating AVL balance property.Subtree Z has grown an extra level (2 levels deeper than X now). Y cannot be at the same level as X (k1 then out of balance before insertion) and Y cannot be at the same level as Z (then k2 would be the first to violate).

10

Double Rotation(Left-Right)
Exactly one of tree B or C is 2 levels deeper than D (unless all empty). To rebalance, k3 cannot be root and a rotation between k1 and k3 was shown not to work. So the only alternative is to place k2 as the new root. This forces k1 to be k2s left child and k3 to be its right child. It also completely determines the locations of all 4 subtrees. AVL balance property is now satisfied. Old height of the tree is restored.

11

12

Double Rotation(Right-Left)
Exactly one of tree B or C is 2 levels deeper than A (unless all empty). To rebalance, k1 cannot be root and a rotation between k1 and k3 was shown not to work. So the only alternative is to place k2 as the new root. This forces k1 to be k3s right child and k2 to be its left child. It also completely determines the locations of all 4 subtrees. AVL balance property is now satisfied. Old height of the tree is restored.

13

14

Height of the Tree

15

Basic Operations
Searching Insertion Deletion

16

Searching

Time Complexity : O(log n)

Space Complexity : O(n) for Stack

17

Insertion

18

19

Deletion

20

21

Applications
Searching in O(log n) time. Compression of Numerical data.

22

You might also like