Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of...
Transcript of Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of...
Red-black tree visualization
Andrej Ivaskovic
University of Cambridge
February 8, 2015
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1
Inserting A
There are no non-empty nodes in the tree yet!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 2 / 1
Inserting A
A
Add a new node: make it red [A].
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 2 / 1
Inserting A
A
Everything is consistent =⇒ no important updates!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 2 / 1
Inserting A
A
Remember that the root must be black!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 2 / 1
Inserting A
A
And we are done!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 2 / 1
Inserting L
A
Compare [L] and A.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 3 / 1
Inserting L
A
L
Add a new node: make it red [L].
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 3 / 1
Inserting L
A
L
Everything is consistent =⇒ no important updates!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 3 / 1
Inserting L
A
L
Remember that the root must be black!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 3 / 1
Inserting L
A
L
And we are done!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 3 / 1
Inserting G
A
L
Compare [G] and A.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 4 / 1
Inserting G
A
L
Compare [G] and L.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 4 / 1
Inserting G
A
L
G
Add a new node: make it red [G].
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 4 / 1
Inserting G
A
L
G
G and L violate the red-black rule!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 4 / 1
Inserting G
A
L
G
G’s uncle is -.First perform a rotation. . .
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 4 / 1
Inserting G
A
G
L
Now perform yet another rotation. . .
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 4 / 1
Inserting G
G
A L
Make sure all colours are consistent!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 4 / 1
Inserting G
G
A L
Remember that the root must be black!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 4 / 1
Inserting G
G
A L
And we are done!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 4 / 1
Inserting O
G
A L
Compare [O] and G.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 5 / 1
Inserting O
G
A L
Compare [O] and L.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 5 / 1
Inserting O
G
A L
O
Add a new node: make it red [O].
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 5 / 1
Inserting O
G
A L
O
O and L violate the red-black rule!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 5 / 1
Inserting O
G
A L
O
O’s uncle is A.Simple colour substitution will suffice.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 5 / 1
Inserting O
G
A L
O
Now consider the grandparent node. . .
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 5 / 1
Inserting O
G
A L
O
Remember that the root must be black!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 5 / 1
Inserting O
G
A L
O
And we are done!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 5 / 1
Inserting R
G
A L
O
Compare [R] and G.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 6 / 1
Inserting R
G
A L
O
Compare [R] and L.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 6 / 1
Inserting R
G
A L
O
Compare [R] and O.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 6 / 1
Inserting R
G
A L
O
R
Add a new node: make it red [R].
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 6 / 1
Inserting R
G
A L
O
R
R and O violate the red-black rule!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 6 / 1
Inserting R
G
A L
O
R
R’s uncle is -.First perform a rotation. . .
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 6 / 1
Inserting R
G
A O
L R
Make sure all colours are consistent!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 6 / 1
Inserting R
G
A O
L R
Remember that the root must be black!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 6 / 1
Inserting R
G
A O
L R
And we are done!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 6 / 1
Inserting I
G
A O
L R
Compare [I] and G.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 7 / 1
Inserting I
G
A O
L R
Compare [I] and O.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 7 / 1
Inserting I
G
A O
L R
Compare [I] and L.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 7 / 1
Inserting I
G
A O
L
I
R
Add a new node: make it red [I].
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 7 / 1
Inserting I
G
A O
L
I
R
I and L violate the red-black rule!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 7 / 1
Inserting I
G
A O
L
I
R
I’s uncle is R.Simple colour substitution will suffice.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 7 / 1
Inserting I
G
A O
L
I
R
Now consider the grandparent node. . .
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 7 / 1
Inserting I
G
A O
L
I
R
Remember that the root must be black!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 7 / 1
Inserting I
G
A O
L
I
R
And we are done!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 7 / 1
Inserting T
G
A O
L
I
R
Compare [T] and G.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 8 / 1
Inserting T
G
A O
L
I
R
Compare [T] and O.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 8 / 1
Inserting T
G
A O
L
I
R
Compare [T] and R.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 8 / 1
Inserting T
G
A O
L
I
R
T
Add a new node: make it red [T].
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 8 / 1
Inserting T
G
A O
L
I
R
T
Everything is consistent =⇒ no important updates!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 8 / 1
Inserting T
G
A O
L
I
R
T
Remember that the root must be black!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 8 / 1
Inserting T
G
A O
L
I
R
T
And we are done!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 8 / 1
Inserting H
G
A O
L
I
R
T
Compare [H] and G.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 9 / 1
Inserting H
G
A O
L
I
R
T
Compare [H] and O.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 9 / 1
Inserting H
G
A O
L
I
R
T
Compare [H] and L.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 9 / 1
Inserting H
G
A O
L
I
R
T
Compare [H] and I.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 9 / 1
Inserting H
G
A O
L
I
H
R
T
Add a new node: make it red [H].
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 9 / 1
Inserting H
G
A O
L
I
H
R
T
H and I violate the red-black rule!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 9 / 1
Inserting H
G
A O
L
I
H
R
T
H’s uncle is -.First perform a rotation. . .
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 9 / 1
Inserting H
G
A O
I
H L
R
T
Make sure all colours are consistent!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 9 / 1
Inserting H
G
A O
I
H L
R
T
Remember that the root must be black!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 9 / 1
Inserting H
G
A O
I
H L
R
T
And we are done!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 9 / 1
Inserting M
G
A O
I
H L
R
T
Compare [M] and G.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 10 / 1
Inserting M
G
A O
I
H L
R
T
Compare [M] and O.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 10 / 1
Inserting M
G
A O
I
H L
R
T
Compare [M] and I.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 10 / 1
Inserting M
G
A O
I
H L
R
T
Compare [M] and L.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 10 / 1
Inserting M
G
A O
I
H L
M
R
T
Add a new node: make it red [M].
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 10 / 1
Inserting M
G
A O
I
H L
M
R
T
M and L violate the red-black rule!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 10 / 1
Inserting M
G
A O
I
H L
M
R
T
M’s uncle is H.Simple colour substitution will suffice.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 10 / 1
Inserting M
G
A O
I
H L
M
R
T
Now consider the grandparent node. . .
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 10 / 1
Inserting M
G
A O
I
H L
M
R
T
I and O violate the red-black rule!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 10 / 1
Inserting M
G
A O
I
H L
M
R
T
I’s uncle is A.First perform a rotation. . .
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 10 / 1
Inserting M
G
A I
H O
L
M
R
T
Now perform yet another rotation. . .
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 10 / 1
Inserting M
I
G
A H
O
L
M
R
T
Make sure all colours are consistent!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 10 / 1
Inserting M
I
G
A H
O
L
M
R
T
Remember that the root must be black!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 10 / 1
Inserting M
I
G
A H
O
L
M
R
T
And we are done!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 10 / 1
Inserting S
I
G
A H
O
L
M
R
T
Compare [S] and I.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 11 / 1
Inserting S
I
G
A H
O
L
M
R
T
Compare [S] and O.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 11 / 1
Inserting S
I
G
A H
O
L
M
R
T
Compare [S] and R.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 11 / 1
Inserting S
I
G
A H
O
L
M
R
T
Compare [S] and T.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 11 / 1
Inserting S
I
G
A H
O
L
M
R
T
S
Add a new node: make it red [S].
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 11 / 1
Inserting S
I
G
A H
O
L
M
R
T
S
S and T violate the red-black rule!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 11 / 1
Inserting S
I
G
A H
O
L
M
R
T
S
S’s uncle is -.First perform a rotation. . .
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 11 / 1
Inserting S
I
G
A H
O
L
M
R
S
T
Now perform yet another rotation. . .
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 11 / 1
Inserting S
I
G
A H
O
L
M
S
R T
Make sure all colours are consistent!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 11 / 1
Inserting S
I
G
A H
O
L
M
S
R T
Remember that the root must be black!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 11 / 1
Inserting S
I
G
A H
O
L
M
S
R T
And we are done!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 11 / 1
Inserting C
I
G
A H
O
L
M
S
R T
Compare [C] and I.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 12 / 1
Inserting C
I
G
A H
O
L
M
S
R T
Compare [C] and G.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 12 / 1
Inserting C
I
G
A H
O
L
M
S
R T
Compare [C] and A.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 12 / 1
Inserting C
I
G
A
C
H
O
L
M
S
R T
Add a new node: make it red [C].
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 12 / 1
Inserting C
I
G
A
C
H
O
L
M
S
R T
Everything is consistent =⇒ no important updates!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 12 / 1
Inserting C
I
G
A
C
H
O
L
M
S
R T
Remember that the root must be black!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 12 / 1
Inserting C
I
G
A
C
H
O
L
M
S
R T
And we are done!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 12 / 1
Inserting A
I
G
A
C
H
O
L
M
S
R T
Compare [A] and I.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 13 / 1
Inserting A
I
G
A
C
H
O
L
M
S
R T
Compare [A] and G.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 13 / 1
Inserting A
I
G
A
C
H
O
L
M
S
R T
Compare [A] and A.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 13 / 1
Inserting A
I
G
A
C
H
O
L
M
S
R T
No new node is added: duplicate key!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 13 / 1
Inserting M
I
G
A
C
H
O
L
M
S
R T
Compare [M] and I.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 14 / 1
Inserting M
I
G
A
C
H
O
L
M
S
R T
Compare [M] and O.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 14 / 1
Inserting M
I
G
A
C
H
O
L
M
S
R T
Compare [M] and L.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 14 / 1
Inserting M
I
G
A
C
H
O
L
M
S
R T
Compare [M] and M.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 14 / 1
Inserting M
I
G
A
C
H
O
L
M
S
R T
No new node is added: duplicate key!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 14 / 1
Inserting B
I
G
A
C
H
O
L
M
S
R T
Compare [B] and I.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 15 / 1
Inserting B
I
G
A
C
H
O
L
M
S
R T
Compare [B] and G.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 15 / 1
Inserting B
I
G
A
C
H
O
L
M
S
R T
Compare [B] and A.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 15 / 1
Inserting B
I
G
A
C
H
O
L
M
S
R T
Compare [B] and C.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 15 / 1
Inserting B
I
G
A
C
B
H
O
L
M
S
R T
Add a new node: make it red [B].
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 15 / 1
Inserting B
I
G
A
C
B
H
O
L
M
S
R T
B and C violate the red-black rule!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 15 / 1
Inserting B
I
G
A
C
B
H
O
L
M
S
R T
B’s uncle is -.First perform a rotation. . .
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 15 / 1
Inserting B
I
G
A
B
C
H
O
L
M
S
R T
Now perform yet another rotation. . .
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 15 / 1
Inserting B
I
G
B
A C
H
O
L
M
S
R T
Make sure all colours are consistent!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 15 / 1
Inserting B
I
G
B
A C
H
O
L
M
S
R T
Remember that the root must be black!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 15 / 1
Inserting B
I
G
B
A C
H
O
L
M
S
R T
And we are done!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 15 / 1
Inserting R
I
G
B
A C
H
O
L
M
S
R T
Compare [R] and I.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 16 / 1
Inserting R
I
G
B
A C
H
O
L
M
S
R T
Compare [R] and O.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 16 / 1
Inserting R
I
G
B
A C
H
O
L
M
S
R T
Compare [R] and S.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 16 / 1
Inserting R
I
G
B
A C
H
O
L
M
S
R T
Compare [R] and R.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 16 / 1
Inserting R
I
G
B
A C
H
O
L
M
S
R T
No new node is added: duplicate key!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 16 / 1
Inserting I
I
G
B
A C
H
O
L
M
S
R T
Compare [I] and I.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 17 / 1
Inserting I
I
G
B
A C
H
O
L
M
S
R T
No new node is added: duplicate key!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 17 / 1
Inserting D
I
G
B
A C
H
O
L
M
S
R T
Compare [D] and I.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 18 / 1
Inserting D
I
G
B
A C
H
O
L
M
S
R T
Compare [D] and G.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 18 / 1
Inserting D
I
G
B
A C
H
O
L
M
S
R T
Compare [D] and B.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 18 / 1
Inserting D
I
G
B
A C
H
O
L
M
S
R T
Compare [D] and C.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 18 / 1
Inserting D
I
G
B
A C
D
H
O
L
M
S
R T
Add a new node: make it red [D].
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 18 / 1
Inserting D
I
G
B
A C
D
H
O
L
M
S
R T
D and C violate the red-black rule!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 18 / 1
Inserting D
I
G
B
A C
D
H
O
L
M
S
R T
D’s uncle is A.Simple colour substitution will suffice.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 18 / 1
Inserting D
I
G
B
A C
D
H
O
L
M
S
R T
Now consider the grandparent node. . .
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 18 / 1
Inserting D
I
G
B
A C
D
H
O
L
M
S
R T
B and G violate the red-black rule!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 18 / 1
Inserting D
I
G
B
A C
D
H
O
L
M
S
R T
B’s uncle is O.Simple colour substitution will suffice.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 18 / 1
Inserting D
I
G
B
A C
D
H
O
L
M
S
R T
Now consider the grandparent node. . .
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 18 / 1
Inserting D
I
G
B
A C
D
H
O
L
M
S
R T
Remember that the root must be black!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 18 / 1
Inserting D
I
G
B
A C
D
H
O
L
M
S
R T
And we are done!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 18 / 1
Inserting G
I
G
B
A C
D
H
O
L
M
S
R T
Compare [G] and I.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 19 / 1
Inserting G
I
G
B
A C
D
H
O
L
M
S
R T
Compare [G] and G.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 19 / 1
Inserting G
I
G
B
A C
D
H
O
L
M
S
R T
No new node is added: duplicate key!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 19 / 1
Inserting E
I
G
B
A C
D
H
O
L
M
S
R T
Compare [E] and I.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 20 / 1
Inserting E
I
G
B
A C
D
H
O
L
M
S
R T
Compare [E] and G.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 20 / 1
Inserting E
I
G
B
A C
D
H
O
L
M
S
R T
Compare [E] and B.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 20 / 1
Inserting E
I
G
B
A C
D
H
O
L
M
S
R T
Compare [E] and C.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 20 / 1
Inserting E
I
G
B
A C
D
H
O
L
M
S
R T
Compare [E] and D.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 20 / 1
Inserting E
I
G
B
A C
D
E
H
O
L
M
S
R T
Add a new node: make it red [E].
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 20 / 1
Inserting E
I
G
B
A C
D
E
H
O
L
M
S
R T
E and D violate the red-black rule!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 20 / 1
Inserting E
I
G
B
A C
D
E
H
O
L
M
S
R T
E’s uncle is -.First perform a rotation. . .
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 20 / 1
Inserting E
I
G
B
A D
C E
H
O
L
M
S
R T
Make sure all colours are consistent!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 20 / 1
Inserting E
I
G
B
A D
C E
H
O
L
M
S
R T
Remember that the root must be black!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 20 / 1
Inserting E
I
G
B
A D
C E
H
O
L
M
S
R T
And we are done!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 20 / 1
Inserting A
I
G
B
A D
C E
H
O
L
M
S
R T
Compare [A] and I.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 21 / 1
Inserting A
I
G
B
A D
C E
H
O
L
M
S
R T
Compare [A] and G.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 21 / 1
Inserting A
I
G
B
A D
C E
H
O
L
M
S
R T
Compare [A] and B.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 21 / 1
Inserting A
I
G
B
A D
C E
H
O
L
M
S
R T
Compare [A] and A.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 21 / 1
Inserting A
I
G
B
A D
C E
H
O
L
M
S
R T
No new node is added: duplicate key!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 21 / 1
Inserting I
I
G
B
A D
C E
H
O
L
M
S
R T
Compare [I] and I.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 22 / 1
Inserting I
I
G
B
A D
C E
H
O
L
M
S
R T
No new node is added: duplicate key!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 22 / 1
Searching for A
I
G
B
A D
C E
H
O
L
M
S
R T
We wish to find a node with key A.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 23 / 1
Searching for A
I
G
B
A D
C E
H
O
L
M
S
R T
Compare [A] with I.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 23 / 1
Searching for A
I
G
B
A D
C E
H
O
L
M
S
R T
Compare [A] with G.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 23 / 1
Searching for A
I
G
B
A D
C E
H
O
L
M
S
R T
Compare [A] with B.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 23 / 1
Searching for A
I
G
B
A D
C E
H
O
L
M
S
R T
Compare [A] with A.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 23 / 1
Searching for A
I
G
B
A D
C E
H
O
L
M
S
R T
We found a node with this key!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 23 / 1
Searching for Z
I
G
B
A D
C E
H
O
L
M
S
R T
We wish to find a node with key Z.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 24 / 1
Searching for Z
I
G
B
A D
C E
H
O
L
M
S
R T
Compare [Z] with I.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 24 / 1
Searching for Z
I
G
B
A D
C E
H
O
L
M
S
R T
Compare [Z] with O.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 24 / 1
Searching for Z
I
G
B
A D
C E
H
O
L
M
S
R T
Compare [Z] with S.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 24 / 1
Searching for Z
I
G
B
A D
C E
H
O
L
M
S
R T
Compare [Z] with T.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 24 / 1
Searching for Z
I
G
B
A D
C E
H
O
L
M
S
R T
There is no such node!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 24 / 1
Predecessor of M
I
G
B
A D
C E
H
O
L
M
S
R T
We wish to find the predecessor of the node with key M. We first have to find thenode whose key is M.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 25 / 1
Predecessor of M
I
G
B
A D
C E
H
O
L
M
S
R T
Compare [M] with I.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 25 / 1
Predecessor of M
I
G
B
A D
C E
H
O
L
M
S
R T
Compare [M] with O.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 25 / 1
Predecessor of M
I
G
B
A D
C E
H
O
L
M
S
R T
Compare [M] with L.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 25 / 1
Predecessor of M
I
G
B
A D
C E
H
O
L
M
S
R T
Compare [M] with M.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 25 / 1
Predecessor of M
I
G
B
A D
C E
H
O
L
M
S
R T
Now we can find the predecessor!
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 25 / 1
Predecessor of M
I
G
B
A D
C E
H
O
L
M
S
R T
M has no left child, so we have to go up.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 25 / 1
Predecessor of M
I
G
B
A D
C E
H
O
L
M
S
R T
M’s parent is L, which is less than M =⇒ the predecessor is L.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 25 / 1
Predecessor of M
I
G
B
A D
C E
H
O
L
M
S
R T
M’s predecessor is L.
Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 25 / 1