Red-Black Trees
6
v
8
3
z
4
© 2004 Goodrich, Tamassia
Red-Black Trees
1
From 2-3-4 to Red-Black Trees
A red-black (RB) tree is a representation of a 2-3-4 tree by means
of a binary tree whose nodes are colored red or black
In comparison with its associated 2-3-4 tree, a red-black tree has
Same logarithmic time performance
Easier to implement (with a single node type)
Harder to understand
4
3
4
5
5
3
2 6 7
3
OR
6
5
2
7
2
Red-Black Trees
An RB tree is a BST with the following properties:
Root Property: the root is black
External Property: every leaf is black
Internal Property: the children of a red node are black No
path from the root to the leaf has two consecutive red nodes.
Depth Property: all the leaves have the same black depth
Each of the paths from the root to the leaves have the same
number of black nodes.
9
4
2
15
6
12
21
7
Red-Black Trees
3
More about RB Trees
Insertion
Nodes are inserted in the same way as a
BST
Tree is updated by restructuring and
recoloring
Red-Black Trees
4
Height of a Red-Black Tree
Theorem: A red-black tree storing n entries has
height O(log n)
Proof:
The height of a red-black tree is at most twice the height of
its associated 2-3-4 tree, which is O(log n)
The search algorithm for a binary search tree is the
same as that for a binary search tree
By the above theorem, searching in a red-black tree
takes O(log n) time
How about an alternative proof without using 2-3-4 trees?
Red-Black Trees
5
Conversion between 2-3-4 and
RB Trees
2-3-4 tree
Red-black trees
Red-Black Trees
6
Insertion
To perform operation put(k, o), we execute the insertion algorithm
for binary search trees and color red the newly inserted node z
unless it is the root
We preserve the root, external, and depth properties
If the parent v of z is black, we also preserve the internal property and
we are done
Else (v is red ) we have a double red (i.e., a violation of the internal
property), which requires a reorganization of the tree
Example where the insertion of 4 causes a double red:
6
v
6
8
3
v
8
3
z
z
4
The inserted node is always red, why?
7
Remedying a Double Red
Consider a double red with child z and parent v, and let w be
the sibling of v
Case 1: w is black
Case 2: w is red
The double red is an incorrect
replacement of a 4-node
Restructuring: we change the
4-node replacement
w
4
2
Uncle of z
z
7
v
The double red corresponds
to an overflow
Recoloring: we perform the
equivalent of a split
w
6
4 6 7
4
2
z
7
v
6
2 4 6 7
.. 2 ..
Red-Black Trees
8
Restructuring (1/2)
A restructuring remedies a child-parent double red when the
uncle of the inserted node is black
It is equivalent to restoring the correct replacement of a 4-node
The internal property is restored and the other properties are
preserved
z
6
4
v
v
w
7
7
2
4
z
w
2
6
Uncle of z
4 6 7
4 6 7
.. 2 ..
.. 2 ..
Red-Black Trees
9
Restructuring (2/2)
There are four restructuring configurations depending on
whether the double red nodes are left or right children
6
2
6
4
6
2
4
4
2
2
4
6
4
2
6
Red-Black Trees
10
Recoloring
A recoloring remedies a child-parent double red when the uncle of
the inserted node is red
The parent v and its sibling w become black and the grandparent u
becomes red, unless it is the root To keep the depth property
It is equivalent to performing a split on a 5-node
The double red violation may propagate to the grandparent u
w
Uncle of z
4
2
z
7
v
w
May propagate…
4
2
6
z
7
v
6
… 4 …
2 4 6 7
2
Red-Black Trees
6 7
11
Summary of Insertion
Two cases of insertions
Uncle is black Restructure
Takes O(1)
Could be a single or double rotations
Uncle is red Recolor
Takes O(log n) since it may propagate
Corresponds to splitting a node in a 2-3-4 tree
Red-Black Trees
12
Insert 15
Example of Insertion (1/3)
Insert 7
Recolor
Insert 12
Insert 3
Red-Black Trees
Restructure
Insert 5
13
Example of Insertion (2/3)
Insert 14
Insert 18
Restructure
Recolor
Red-Black Trees
14
Example of Insertion (3/3)
Insert 16
Insert 17
Restructure
Cascaded
restructure
Recolor
Red-Black Trees
15
Resources of RB Trees
Insertion animation
Animation
Pay attention to the propagation…
More interactive animation
Insertion rule
Rationale behind insertion
Proof of logarithmic height (w/o using 2-34 trees)
Red-Black Trees
16
Analysis of Insertion
Algorithm put(k, o)
1. We search for key k to locate the
insertion node z
2. We add the new entry (k, o) at
node z and color z red
3. while doubleRed(z)
if isBlack(sibling(parent(z)))
z restructure(z)
return
else { sibling(parent(z) is red }
z recolor(z)
Red-Black Trees
Recall that a red-black tree
has O(log n) height
Step 1 takes O(log n) time
because we visit O(log n)
nodes
Step 2 takes O(1) time
Step 3 takes O(log n) time
because we perform
O(log n) recolorings, each
taking O(1) time, and
at most one restructuring
taking O(1) time
Thus, an insertion in a redblack tree takes O(log n) time
17
Deletion
To do erase(k), we first execute the deletion algorithm for BST
Let v be the internal node removed, w the external node removed,
and r the sibling of w
If either v or r was red, we color r black and we are done
Else (v and r were both black) we color r double black, which is a
violation of the depth property requiring a update of the tree
Example where the deletion of 8 causes a double black:
6
6
8
3
r
v
r
3
w
4
4
Red-Black Trees
18
Remedying a Double Black
To remedy a double black node w with sibling y:
Case 1: y is black and has a red child
We perform a restructuring, equivalent to a transfer , and we are
done
Case 2: y is black and its children are both black
We perform a recoloring, equivalent to a fusion, which may
propagate up the double black violation
Case 3: y is red
We perform an adjustment, equivalent to choosing a different
representation of a 3-node, after which either Case 1 or Case 2
applies
Deletion in a red-black tree takes O(log n) time
Red-Black Trees
19
Case 1:
Restructuring
Either R or B
Either R or B
Either R or B
20
Case 2: Recoloring
21
Case 3: Adjustment
22
Example of Deletion (1/3)
Delete 3
Case 1 of restructuring
(Transfer in 2-3-4 trees)
Restructure
Delete 12
23
Example of Deletion (2/3)
Delete 17
Delete 18
Delete 15
Recolor
Case 2 of recoloring
(Fusion in 2-3-4 trees)
24
Example of Deletion (3/3)
Case 3 of adjustment
(A different rep. of 3-node )
Case 3 of adjustment
(Fusion in 2-3-4 trees )
Delete 16
Recolor
Adjust
25
Case 1: Restructuring
Case 1 of restructuring
(Transfer in 2-3-4 trees)
Restructure
7, 14, 16
4, 5
x
15
5, 14, 16
Transfer
17, 18
4
7
15
17, 18
26
Case 2: Recoloring
Case 2 of recoloring
(Fusion in 2-3-4 trees)
Recolor
5, 14, 16
4
7
15
5, 14
Fusion
x
4
Red-Black Trees
7
15, 16
27
Case 3: Adjustment
Case 3 of adjustment
(A different rep. of 3-node )
Case 3 of adjustment
(Fusion in 2-3-4 trees )
Recolor
Adjust
5, 14
4
7
5
Fusion
x
4
7, 14
28
Red-Black Tree Update
Insertion
(remedy double red)
Red-black tree action
2-3-4 tree action
result
restructuring
change of 4-node
representation
double red removed
recoloring
split
double red removed
or propagated up
Deletion
(remedy double black)
Red-black tree action
2-3-4 tree action
result
restructuring
transfer
double black removed
recoloring
fusion
double black removed
or propagated up
adjustment
change of 3-node
representation
restructuring or
recoloring follows
29
© Copyright 2025 Paperzz