Upload
donoma
View
28
Download
0
Embed Size (px)
DESCRIPTION
CSC 213 – Large Scale Programming. Lecture 22: The Rolling Stones, Masters of the Balanced Tree. Red-Black Tree Properties. Root Property: Root node painted black External Property: Leaves are painted black Internal Property: Red node s’ children are black - PowerPoint PPT Presentation
Citation preview
LECTURE 22:THE ROLLING STONES, MASTERS OF THE BALANCED TREE
CSC 213 – Large Scale Programming
Red-Black Tree Properties
Root Property: Root node painted black External Property: Leaves are painted
black Internal Property: Red nodes’ children are
black Depth Property: Leaves have identical
black depth Number of black ancestors for the node
9
154
62 12
7
21
Insertion
Begins as BST insertion (just like splay & AVL)
New node’s initial color set by where it is If node is root, paint it black Other nodes colored red when insertion
completes
Insertion
Begins as BST insertion (just like splay & AVL)
New node’s initial color set by where it is If node is root, paint it black Other nodes colored red when insertion
completes Example: insert(3)
68
Insertion
Begins as BST insertion (just like splay & AVL)
New node’s initial color set by where it is If node is root, paint it black Other nodes colored red when insertion
completes Example: insert(3)
683
Insertion
Begins as BST insertion (just like splay & AVL)
New node’s initial color set by where it is If node is root, paint it black Other nodes colored red when insertion
completes Example: insert(3)
683
Insertion
New node’s initial color set by where it is If node is root, paint it black Other nodes colored red when insertion
completes If node’s parent is red, violates internal
property Must reorganize tree to remove double
red Example: insert(4)
683
4
Insertion
New node’s initial color set by where it is If node is root, paint it black Other nodes colored red when insertion
completes If node’s parent is red, violates internal
property Must reorganize tree to remove double
red Example: insert(4)makes tree
unbalanced
683
4
Double Red With Red Aunt
Double red represents creation of 5-node
Perform recoloring to find if balance really off
6
83
4
Double Red With Red Aunt
Parent & uncle painted black, grandparent red When grandparent is root, must paint it
black When easier, promote 2nd Entry to parent
Must continue check, double red can propagate4
672
Double Red With Red Aunt
Parent & uncle painted black, grandparent red When grandparent is root, must paint it
black When easier, promote 2nd Entry to parent
Must continue check, double red can propagate4
672
4
672
Double Red With Red Aunt
Parent & uncle painted black, grandparent red When grandparent is root, must paint it
black When easier, promote 2nd Entry to parent
Must continue check, double red can propagate4
672
4
672
Double Red With Black Aunt
Poorly balanced tree causes this double red Restore tree balance to use AVL tree
restructuring Preserves overall balance of the tree6
83
4
Double Red With Black Aunt
Rebalance tree using AVL tree restructuring
Recolors nodes also, but changes are very small
4
672
Double Red With Black Aunt
Rebalance tree using AVL tree restructuring
Recolors nodes also, but changes are very small
4
672 4
67
2
Double Red Restructuring
4 different restructures needed to remedy Differ in how node, parent, & grandparent
related Identical result no matter where we start4
67
7
46
7
64
4
76
Double Red Restructuring
4 different restructures needed to remedy Differ in how node, parent, & grandparent
related Identical result no matter where we start4
67
7
46
7
64
4
76
4 76
Deletion
Start with normal BST deletion If Entry in red node or leafs’s sibling
red Leaf’s sibling is painted black
Example: remove(1)6
3 8
41
Deletion
Start with normal BST deletion If Entry in red node or leafs’s sibling
red Leaf’s sibling is painted black
Example: remove(1)6
3 8
41
Deletion
Start with normal BST deletion If Entry in red node or leafs’s sibling
red Leaf’s sibling is painted black
Example: remove(1)6
3 8
4
Deletion
Start with normal BST deletion If Entry in red node or leafs’s sibling
red Leaf’s sibling is painted black
Example: remove(1)6
3 8
4
What’s Blacker Than Black?
If removed Entry & leaf’s sibling already black Paint sibling double black This is an illegal state – violates internal
property Example: remove(8)6
3 8
4
What’s Blacker Than Black?
If removed Entry & leaf’s sibling already black Paint sibling double black This is an illegal state – violates internal
property Example: remove(8)6
3 8
4
What’s Blacker Than Black?
If removed Entry & leaf’s sibling already black Paint sibling double black This is an illegal state – violates internal
property Example: remove(8)6
3
4
What’s Blacker Than Black?
If removed Entry & leaf’s sibling already black Paint sibling double black This is an illegal state – violates internal
property Example: remove(8) causes double
black6
3
4
Remedying Double Black
Case 1: sibling is black with red child Reorder nodes using AVL tree restructure
Case 2: sibling and its children are black Equal to (2,4) tree underflow, so recolor
nodes
Remedying Double Black
Case 1: sibling is black with red child Reorder nodes using AVL tree restructure
Case 2: sibling and its children are black Just a bad balance, so just recolor nodes
Case 3: sibling is red Adjust subtree to better balance tree Once complete apply case 1 or case 2
Black Sibling With Red Niece Solve double black using AVL
restructuring
9
6 10
8
Black Sibling With Red Niece Solve double black using AVL
restructuring
9
6
8
Black Sibling With Red Niece Solve double black using AVL
restructuring
9
6
8
8
6 9
Sibling & Children are Black Solve double black recoloring
parent & sibling
5
10
9
6
…
Sibling & Children are Black Solve double black recoloring
parent & sibling
5
9
6
…
Sibling & Children are Black Solve double black recoloring
parent & sibling
5
9
6
…
5
9
6
…
Sibling & Children are Black Solve double black recoloring
parent & sibling
5
9
6
…
5
9
6
…
Sibling is Red
Adjusting double black stalls for time Transforms situation into something we can
fix
9
5 10
4
Sibling is Red
Adjusting double black stalls for time Transforms situation into something we can
fix
9
5 10
4
Sibling is Red
Adjusting double black stalls for time Transforms situation into something we can
fix
9
5
4
Sibling is Red
Adjusting double black stalls for time Transforms situation into something we can
fix
9
5
4
Sibling is Red
Adjusting double black stalls for time Transforms situation into something we can
fix Once completed, re-examine double black
node9
5
4
54 9
Do the Activity
For Next Lecture
Weekly assignment available to test skills Due at regular time Tuesday after break Talk to me if struggling on problems
Last idea from Map/Dictionary after break What are Sets? Why are we getting to
them now? It may not appear related, but how are they
used? Reminder: lab phase #2 due Monday
after break