Red-Black Tree Insertion
This lesson will cover the insertion operation in Red-Black trees, discussing all four insertion cases.
Insertion in Red-Black Tree
Here is a high-level description of the algorithm involved in inserting a value in a Red-Black Tree:
-
Insert the given node using the standard BST Insertion technique that we studied earlier and color it Red.
-
If the given node is the root, then change its color to Black.
-
If the given node is not the root, then we will have to perform some operations to make the tree follow the Red-Black property.
Rebalancing the Tree
There are two ways to balance an unbalanced tree:
- Recoloring Nodes
- Rotating Nodes (left or right)
But before the details are explained, let’s define the structure of the Red-Black Tree and some nodes relative to the given node, the node that we inserted in the Tree.
- Node C – the newly inserted node
- Node P – the parent of the newly inserted node
- Node G – the grandparent of the newly inserted node
- Node U – the sibling of the parent of the newly inserted node, i.e., the sibling of Node P / child of Node G
If the newly inserted node is not a root, and the parent of the newly inserted node is not Black, we will check Node U. Based on Node U’s color, we balance the tree. If Node U is Red, do the following:
- Change the color of Node P and U to Black
- Change the color of Node G to Red
- Make Node G the new current node and repeat the same process from step two
Level up your interview prep. Join Educative to access 80+ hands-on prep courses.