# CSC 213 – Large Scale Programming. Red-Black Tree Properties black  Root Property: Root node painted black black  External Property: Leaves are painted.

## Presentation on theme: "CSC 213 – Large Scale Programming. Red-Black Tree Properties black  Root Property: Root node painted black black  External Property: Leaves are painted."— Presentation transcript:

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 9 154 6212 7 21

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) 6 83 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 6 83 4

Double Red Double Red With Red Aunt  Double red  Double red represents creation of 5-node  Perform recoloring to find if balance really off 6 8 3 4

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 4 6 7 2

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 4 6 7 2 4 6 7 2

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 4 6 7 2 4 6 7 2

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 6 8 3 4

Double Red Black Double Red With Black Aunt  Rebalance tree using AVL tree restructuring  Recolors nodes also, but changes are very small 4 6 7 2

Double Red Black Double Red With Black Aunt  Rebalance tree using AVL tree restructuring  Recolors nodes also, but changes are very small 4 6 7 2 4 6 7 2

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 4 6 7 7 4 6 7 6 4 4 7 6

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 4 6 7 7 4 6 7 6 4 4 7 6 4 7 6

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) 6 3 8 4 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) 6 3 8 4 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) 6 3 8 4

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) 6 3 8 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  Example: remove(8) 6 3 8 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  Example: remove(8) 6 3 8 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  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 9 6 10 8

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 9 6 8 8 6 9

Black Sibling & Children are Black double black  Solve double black recoloring parent & sibling 5 10 9 6 …

Black Sibling & Children are Black double black  Solve double black recoloring parent & sibling 5 9 6 …

Black Sibling & Children are Black double black  Solve double black recoloring parent & sibling 5 9 6 … 5 9 6 …

Black Sibling & Children are Black double black  Solve double black recoloring parent & sibling 5 9 6 … 5 9 6 …

Sibling is Red double black  Adjusting double black stalls for time  Transforms situation into something we can fix 9 5 10 4

Sibling is Red double black  Adjusting double black stalls for time  Transforms situation into something we can fix 9 5 10 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 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 9 5 4 5 4 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 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

Download ppt "CSC 213 – Large Scale Programming. Red-Black Tree Properties black  Root Property: Root node painted black black  External Property: Leaves are painted."

Similar presentations