26 views

Uploaded by Kiran Choudhary

ppt cp

save

You are on page 1of 43

"People in every direction

No words exchanged

No time to exchange

And all the little ants are marching

Red and black antennas waving"

-Ants Marching, Dave Matthew's Band

Center. See, they use video feeds from intersections and specifically

designed algorithms to predict traffic conditions, and thereby control traffic

lights. So all I did was come up with my own... kick ass algorithm to sneak

in, and now we own the place."

-Lyle, the Napster, (Seth Green), The Italian Job

Clicker Question 1

2000 elements are inserted one at a time

into an initially empty binary search tree

using the traditional, naive algorithm. What is

the maximum possible height of the resulting

tree?

A. 1

B. 11

C. 1999

D. 2000

E. 4000

CS314 2

Red Black Trees

Binary Search Trees

Average case and worst case Big O for

insertion

deletion

access

Balance is important. Unbalanced trees give

worse than log N times for the basic tree

operations

Can balance be guaranteed?

CS314 3

Red Black Trees

Red Black Trees

A BST with more complex algorithms to

ensure balance

Each node is labeled as Red or Black.

Path: A unique series of links (edges)

traverses from the root to each node.

The number of edges (links) that must be

followed is the path length

In Red Black trees paths from the root to

elements with 0 or 1 child are of particular

interest

CS314 4

Red Black Trees

Paths to Single or Zero Child

Nodes

How many? 19

12 35

3 16 21 56

CS314 5

Red Black Trees

Red Black Tree Rules

1. Every node is colored either Red

or black

2. The root is black

3. If a node is red its children must

be black. (a.k.a. the red rule)

4. Every path from a node to a null

link must contain the same

number of black nodes (a.k.a.

the path rule)

CS314 6

Red Black Trees

Example of a Red Black Tree

The root of a Red Black tree is black

Every other node in the tree follows these rules:

Rule 3: If a node is Red, all of its children are Black

Rule 4: The number of Black nodes must be the same in all paths

from the root node to null nodes

19

12 35

3 16 21 56

30

CS314 7

Red Black Trees

Red Black Tree?

19

12 35

50

0

75

-10

-5 135

-8 100

-6 80

CS314 8

Red Black Trees

Clicker Question 2

Is the tree on the previous slide a binary

search tree? Is it a red black tree?

BST? Red-Black?

A. No No

B. No Yes

C. Yes No

D. Yes Yes

CS314 9

Red Black Trees

Red Black Tree?

19

12 35

3 16

Perfect?

Full?

Complete?

CS314 10

Red Black Trees

Clicker Question 3

Is the tree on the previous slide a binary

search tree? Is it a red black tree?

BST? Red-Black?

A. No No

B. No Yes

C. Yes No

D. Yes Yes

CS314 11

Red Black Trees

Implications of the Rules

If a Red node has any children, it must have

two children and they must be Black. (Why?)

If a Black node has only one child that child

must be a Red leaf. (Why?)

Due to the rules there are limits on how

unbalanced a Red Black tree may become.

on the previous example may we hang a new

node off of the leaf node that contains 0?

CS314 12

Red Black Trees

Properties of Red Black Trees

If a Red Black Tree is complete, with all

Black nodes except for Red leaves at the

lowest level the height will be minimal, ~log N

To get the max height for N elements there

should be as many Red nodes as possible

down one path and all other nodes are Black

This means the max height would be < 2 * log N

see example on next slide

CS314 13

Red Black Trees

Max Height Red Black Tree

14

12 35

13 21 56

1

43 99

15 25

80 100

70

CS314 14

Red Black Trees

Maintaining the Red Black

Properties in a Tree

Insertions

Must maintain rules of Red Black Tree.

New Node always a leaf

can't be black or we will violate rule 4

therefore the new leaf must be red

If parent is black, done (trivial case)

if parent red, things get interesting because a red

leaf with a red parent violates rule 3

CS314 15

Red Black Trees

Insertions with Red Parent - Child

Must modify tree when insertion would result in

Red Parent - Child pair using color changes and

rotations.

30

15 70

20 60 85

10

80 90

50 65

5

CS314

40 55 16

Red Black Trees

Case 1

Suppose sibling of parent is Black.

by convention null nodes are black

In the previous tree, true if we are inserting a

3 or an 8.

What about inserting a 99? Same case?

Let X be the new leaf Node, P be its Red

Parent, S the Black sibling and G, P's and

S's parent and X's grandparent

What color is G?

CS314 17

Red Black Trees

Case 1 - The Picture

G

P S

C D E

X

A B

Outside -> left left or right right moves

Inside -> left right or right left moves

CS314 18

Red Black Trees

Fixing the Problem

G

P S

C D E

X

A B

If X is an outside node a single

rotation between P and G fixes the problem.

A rotation is an exchange of roles between a parent

and child node. So P becomes G's parent. Also must

recolor P and G.

CS314 19

Red Black Trees

Single Rotation

P

X G

A B C

S

D E

Apparent rule violation?

CS314 20

Red Black Trees

Case 2

What if X is an inside node relative to G?

a single rotation will not work

Must perform a double rotation

rotate X and P

rotate X and G G

P S

A D E

X

B C

CS314 21

Red Black Trees

After Double Rotation

X

P G

A B C

S

D E

Apparent rule violation?

CS314 22

Red Black Trees

Case 3

Sibling is Red, not Black

G

P S

C D E

X

A B

Any problems?

CS314 23

Red Black Trees

Fixing Tree when S is Red

Must perform single rotation between parent,

P and grandparent, G, and then make

appropriate color changes

P

X G

B C S

A

D E

CS314 24

Red Black Trees

More on Insert

Problem: What if on the previous example

G's parent had been red?

Easier to never let Case 3 ever occur!

On the way down the tree, if we see a node X that

has 2 Red children, we make X Red and its two

children black.

if recolor the root, recolor it to black

the number of black nodes on paths below X remains

unchanged

If X's parent was Red then we have introduced 2

consecutive Red nodes.(violation of rule)

to fix, apply rotations to the tree, same as inserting node

CS314 25

Red Black Trees

Example of Inserting Sorted Numbers

1 2 3 4 5 6 7 8 9 10

Insert 1. A leaf so

red. Realize it is

1

root so recolor

to black.

CS314 26

Red Black Trees

Insert 2

make 2 red. Parent

1

is black so done.

2

CS314 27

Red Black Trees

Insert 3

Parent's sibling is black

(null) 3 is outside relative 2

to grandparent. Rotate

parent and grandparent 3

2

1 3

CS314 28

Red Black Trees

Insert 4

On way down see

2 with 2 red children.

2

Recolor 2 red and

children black.

Realize 2 is root 1 3

so color back to black

2

When adding 4

parent is black 1 3

so done.

4

CS314 29

Red Black Trees

Insert 5

5's parent is red. 2

Parent's sibling is

black (null). 5 is 3

1

outside relative to

grandparent (3) so rotate 4

parent and grandparent then

recolor

5

CS314 30

Red Black Trees

Finish insert of 5

1 4

3 5

CS314 31

Red Black Trees

Insert 6

On way down see

4 with 2 red 2

children. Make

4 red and children 1 4

black. 4's parent is

black so no problem. 3 5

CS314 32

Red Black Trees

Finishing insert of 6

so done.

1 4

3 5

CS314 33

Red Black Trees

Insert 7

Parent's sibling is

black (null). 7 is 1 4

outside relative to

grandparent (5) so 3 5

rotate parent and

grandparent then recolor 6

CS314 34

Red Black Trees

Finish insert of 7

1 4

3 6

5 7

CS314 35

Red Black Trees

Insert 8

On way down see 6

2

with 2 red children.

Make 6 red and

children black. This 1 4

creates a problem

because 6's parent, 4, is 3 6

also red. Must perform

rotation. 5 7

CS314 36

Red Black Trees

Still Inserting 8

2

Recolored now

need to

rotate 1 4

3 6

5 7

CS314 37

Red Black Trees

Finish inserting 8

4

Recolored now

need to

rotate 2 6

1 3 5 7

CS314 38

Red Black Trees

Insert 9

2 6

1 3 5 7

so recolor 4 red and children black.

Realize 4 is the root so recolor black 9

CS314 39

Red Black Trees

Finish Inserting 9

2 6

1 3 5 8

7 9

After rotations and recoloring

CS314 40

Red Black Trees

Insert 10

2 6

1 3 5 8

red children so change 8 to

red and children black 10

CS314 41

Red Black Trees

Insert 11

4

2 6

1 3 5 8

7 9

Again a rotation is

needed. 10

11

CS314 42

Red Black Trees

Finish inserting 11

4

2 6

1 3 5 8

7 10

9 11

CS314 43

Red Black Trees

- DA_3.1_RMUploaded byB S Praveen Bsp
- cs301 quiz 10-1-2011Uploaded byAwais Akram
- RMQstanford.pdfUploaded byVishal Golcha
- Self Balancing Binary Search TreeUploaded bythe_swagmaster
- Tree ManipulationUploaded bytemuchin
- Planning TASKUploaded bysenthur123
- bstxUploaded bycarlone77
- Tarjan85_AmortizedComplexity.pdfUploaded bynicolas
- Test Planning and Execution in WhizibleUploaded bysenthur123
- TreesUploaded byjbond07
- Neyer PaperUploaded byanishnair94
- ABAP ALV Tree ExemploUploaded byLeonardo Nobre
- TestingUploaded byLarry
- Morse Code to Huffman CodingUploaded byDemarco Dayanghirang Formalejo
- HeapsUploaded byhim7827
- Efficiently Delivering Data Packets Using Distributed Protocol for Runtime Groups Formed In Peer-to-Peer NetworkUploaded byWhite Globe Publications (IJORCS)
- DataStrucPart10Uploaded byTomas Gen
- Course Plan New FORMAT-1Uploaded bysprabhakaranece
- POP ReportUploaded bydisguizedmagician
- Network OptionUploaded bycodigocarnet
- 10.1.1.7.4678 @robUploaded bySuman Bhowmick
- CFG-pumpingUploaded bySonaiya Mahesh
- 2b DecisionTheory ModAUploaded byJason Merlin
- Data Structure Test PaperUploaded bydjahad
- Generalization of SPIHTUploaded byVijay Anandh
- Phast7.0_ReleaseLetter&Note.pdfUploaded bymlutfima
- 04 Technology MappingUploaded byYesrno Toyou
- Lecture5p_2ppUploaded byMrZaggy
- CS301-lec14Uploaded byism33
- DFT05_hyukjuneUploaded byNitika Mehta

- Codeforces TutorialUploaded byNeeraj Sharma
- 从2-3-4树谈到红黑树Uploaded byYichao Yu
- Clrs ContentUploaded byThomas Ramos
- ps5solUploaded bydjoseph_1
- H12-solution[www.alirezaweb.com].pdfUploaded byVahid Esmaeilzadeh
- AVL treeUploaded byajachy
- Arbol Red BlackUploaded byFatima Rosario Reyes Tercero
- ARBOLESUploaded byJASNEYKA
- AlgoXY Elementary AlgorithmsUploaded byelidrissia0
- Arboles RojoUploaded byAlan Hurtarte
- 9D58101 Advanced Data Structures & AlgorithmsUploaded bysubbu
- DS ProgramUploaded byshailu
- CSM Final Review Part 2 (11%2F2)Uploaded byserige
- Data AbstractionUploaded byJohn Smith
- Red Black Trees Top Down DeletionUploaded bySiva Sundaramoorthy
- Árvores 2-3Uploaded bySérgio Maracajá Junior
- Árbol rojo-negroUploaded byjbormey1976
- l Completely Fair Scheduler PDFUploaded bynarayana_nm20008689
- CS6301-Programming and Data Structures-IIUploaded bySriRithanya
- Red Black TreesUploaded byVishnu
- Lista exercícios ProbabilidadeUploaded byAlessandro Herculano
- Rb TreesUploaded byDidin Cool
- ccf-2015Uploaded byHongyi Frank Liang
- An Introduction to Binary Search Tree and Balanced Tree by Ben PfaffUploaded bySankalp Singh
- Unidad 4 Estructura No LinealesUploaded bySalvador Ramirez Ayala
- Colecciones en ScalaUploaded byedwinc1993
- Data Structures and AlgorithmsUploaded byabhi
- Data StructuresUploaded bySwati Sukhija
- Red–black tree - Wikipedia, the free encyclopedia.pdfUploaded byIoio92
- 100 C Interview Questions and AnswersUploaded bySrikanth Sri