In this post we will compare Red Black Tree and AVL Tree.
Red Black Tree:
- Self-Balancing is provided by painting each node with one two colors(Red or Black).
- When Tree is modified, new tree is subsequently rearranged and repainted.
- It requires 1 bit of color information for each node in tree.
Constraints maintained by Red Black Tree:
- Root is always black.
- All NULL leaves are black, both children of red node are black.
- Every simple path from a given node to any of its descendant leaves contains the same number of black
- Path form root to farthest leaf is no more than twice as long as path from root to nearest leaf.
AVL(Adelson-Velskii and Landis) Tree
- Height difference of left and right subtree of node should be less than 2.
- Re-balancing is done when heights of two child subtrees of a node differ by more than one.
- Faster retrievals as strictly balanced.
- AVL trees provide faster lookups than Red Black Trees because they are more strictly balanced.
- Red Black Trees provide faster insertion and removal operations than AVL trees as fewer rotations are done due to relatively relaxed balancing.
- AVL trees store balance factors or heights with each node, thus requires storage for an integer per node whereas Red Black Tree requires only 1 bit of information per node.
- Red Black Trees are used in most of the language libraries like map, multimap, multiset in C++ whereas AVL trees are used in databases where faster retrievals are required.
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.