Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of...

177
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

Transcript of Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of...

Page 1: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 2: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 3: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 4: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

Inserting A

A

Everything is consistent =⇒ no important updates!

Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 2 / 1

Page 5: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

Inserting A

A

Remember that the root must be black!

Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 2 / 1

Page 6: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

Inserting A

A

And we are done!

Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 2 / 1

Page 7: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

Inserting L

A

Compare [L] and A.

Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 3 / 1

Page 8: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 9: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

Inserting L

A

L

Everything is consistent =⇒ no important updates!

Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 3 / 1

Page 10: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 11: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

Inserting L

A

L

And we are done!

Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 3 / 1

Page 12: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

Inserting G

A

L

Compare [G] and A.

Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 4 / 1

Page 13: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

Inserting G

A

L

Compare [G] and L.

Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 4 / 1

Page 14: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 15: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 16: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 17: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

Inserting G

A

G

L

Now perform yet another rotation. . .

Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 4 / 1

Page 18: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 19: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 20: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

Inserting G

G

A L

And we are done!

Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 4 / 1

Page 21: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

Inserting O

G

A L

Compare [O] and G.

Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 5 / 1

Page 22: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

Inserting O

G

A L

Compare [O] and L.

Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 5 / 1

Page 23: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 24: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 25: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 26: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 27: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 28: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

Inserting O

G

A L

O

And we are done!

Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 5 / 1

Page 29: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

Inserting R

G

A L

O

Compare [R] and G.

Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 6 / 1

Page 30: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

Inserting R

G

A L

O

Compare [R] and L.

Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 6 / 1

Page 31: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

Inserting R

G

A L

O

Compare [R] and O.

Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 6 / 1

Page 32: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 33: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 34: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 35: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 36: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 37: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 38: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 39: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 40: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 41: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 42: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 43: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 44: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 45: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 46: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 47: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 48: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 49: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 50: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 51: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 52: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 53: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 54: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 55: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 56: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 57: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 58: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 59: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 60: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 61: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 62: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 63: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 64: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 65: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 66: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 67: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 68: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 69: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 70: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 71: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 72: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 73: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 74: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 75: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 76: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 77: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 78: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 79: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 80: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 81: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 82: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 83: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 84: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 85: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 86: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 87: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 88: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 89: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 90: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 91: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 92: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 93: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 94: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 95: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 96: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 97: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 98: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 99: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 100: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 101: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 102: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 103: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 104: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 105: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 106: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 107: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 108: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 109: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 110: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 111: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 112: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 113: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 114: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 115: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 116: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 117: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 118: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 119: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 120: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 121: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 122: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 123: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 124: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 125: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 126: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 127: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 128: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 129: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 130: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 131: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 132: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 133: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 134: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 135: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 136: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 137: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 138: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 139: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 140: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 141: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 142: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 143: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 144: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 145: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 146: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 147: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 148: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 149: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 150: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 151: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 152: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 153: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 154: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 155: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 156: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 157: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 158: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 159: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 160: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 161: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 162: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 163: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 164: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 165: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 166: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 167: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 168: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 169: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 170: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 171: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 172: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 173: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 174: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 175: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 176: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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

Page 177: Red-black tree visualization - University of Cambridge · Andrej Ivaskovic (University of Cambridge) Red-black tree visualization February 8, 2015 1 / 1. Inserting A There are no

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