CSC 213 – Large Scale Programming
Red-Black Tree Properties black Root Property: Root node painted black black External Property: Leaves are painted black black Internal Property: Red nodes’ children are black black Depth Property: Leaves have identical black depth black Number of black ancestors for the node
Insertion Begins as BST insertion (just like splay & AVL) New node’s initial color set by where it is black 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 black If node is root, paint it black Other nodes colored red when insertion completes Example: insert(3) 6 8
Insertion Begins as BST insertion (just like splay & AVL) New node’s initial color set by where it is black If node is root, paint it black Other nodes colored red when insertion completes Example: insert(3) 6 83
Insertion Begins as BST insertion (just like splay & AVL) New node’s initial color set by where it is black If node is root, paint it black Other nodes colored red when insertion completes Example: insert(3) 6 83
Insertion New node’s initial color set by where it is black If node is root, paint it black Other nodes colored red when insertion completes If node’s parent is red, violates internal property double red Must reorganize tree to remove double red Example: insert(4)
Insertion New node’s initial color set by where it is black If node is root, paint it black Other nodes colored red when insertion completes If node’s parent is red, violates internal property double red Must reorganize tree to remove double red Example: insert(4) makes tree unbalanced
Double Red Double Red With Red Aunt Double red Double red represents creation of 5-node Perform recoloring to find if balance really off
Double Red Double Red With Red Aunt black Parent & uncle painted black, grandparent red black When grandparent is root, must paint it black When easier, promote 2nd Entry to parent double red Must continue check, double red can propagate
Double Red Double Red With Red Aunt black Parent & uncle painted black, grandparent red black When grandparent is root, must paint it black When easier, promote 2nd Entry to parent double red Must continue check, double red can propagate
Double Red Double Red With Red Aunt black Parent & uncle painted black, grandparent red black When grandparent is root, must paint it black When easier, promote 2nd Entry to parent double red Must continue check, double red can propagate
Double Red Black Double Red With Black Aunt double red Poorly balanced tree causes this double red Restore tree balance to use AVL tree restructuring Preserves overall balance of the tree
Double Red Black Double Red With Black Aunt Rebalance tree using AVL tree restructuring Recolors nodes also, but changes are very small
Double Red Black Double Red With Black Aunt Rebalance tree using AVL tree restructuring Recolors nodes also, but changes are very small
Double Red Double Red Restructuring 4 different restructures needed to remedy Differ in how node, parent, & grandparent related Identical result no matter where we start
Double Red Double Red Restructuring 4 different restructures needed to remedy Differ in how node, parent, & grandparent related Identical result no matter where we start
Deletion Start with normal BST deletion If Entry in red node or leafs’s sibling red black Leaf’s sibling is painted black Example: remove(1)
Deletion Start with normal BST deletion If Entry in red node or leafs’s sibling red black Leaf’s sibling is painted black Example: remove(1)
Deletion Start with normal BST deletion If Entry in red node or leafs’s sibling red black Leaf’s sibling is painted black Example: remove(1)
Deletion Start with normal BST deletion If Entry in red node or leafs’s sibling red black Leaf’s sibling is painted black Example: remove(1)
Blacker Black What’s Blacker Than Black? black If removed Entry & leaf’s sibling already black double black Paint sibling double black This is an illegal state – violates internal property Example: remove(8)
Blacker Black What’s Blacker Than Black? black If removed Entry & leaf’s sibling already black double black Paint sibling double black This is an illegal state – violates internal property Example: remove(8)
Blacker Black What’s Blacker Than Black? black If removed Entry & leaf’s sibling already black double black Paint sibling double black This is an illegal state – violates internal property Example: remove(8) 6 3 4
Blacker Black What’s Blacker Than Black? black If removed Entry & leaf’s sibling already black double black Paint sibling double black This is an illegal state – violates internal property double black Example: remove(8) causes double black 6 3 4
Double Black Remedying Double Black black Case 1: sibling is black with red child Reorder nodes using AVL tree restructure black Case 2: sibling and its children are black Equal to (2,4) tree underflow, so recolor nodes
Double Black Remedying Double Black black Case 1: sibling is black with red child Reorder nodes using AVL tree restructure black 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 Black Sibling With Red Niece double black Solve double black using AVL restructuring
Black Black Sibling With Red Niece double black Solve double black using AVL restructuring 9 6 8
Black Black Sibling With Red Niece double black Solve double black using AVL restructuring
Black Sibling & Children are Black double black Solve double black recoloring parent & sibling …
Black Sibling & Children are Black double black Solve double black recoloring parent & sibling …
Black Sibling & Children are Black double black Solve double black recoloring parent & sibling … …
Black Sibling & Children are Black double black Solve double black recoloring parent & sibling … …
Sibling is Red double black Adjusting double black stalls for time Transforms situation into something we can fix
Sibling is Red double black Adjusting double black stalls for time Transforms situation into something we can fix
Sibling is Red double black Adjusting double black stalls for time Transforms situation into something we can fix 9 5 4
Sibling is Red double black Adjusting double black stalls for time Transforms situation into something we can fix 9 5 4
Sibling is Red double black Adjusting double black stalls for time Transforms situation into something we can fix double black Once completed, re-examine double black node
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 Set s? 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