Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


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:

1 CSC 213 – Large Scale Programming

2 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

3 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

4 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

5 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

6 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

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 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

15 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

16 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

17 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

18 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

19 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

20 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

21 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

22 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

23 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

24 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

25 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

26 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

27 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

28 Black Black Sibling With Red Niece double black  Solve double black using AVL restructuring 9 6 10 8

29 Black Black Sibling With Red Niece double black  Solve double black using AVL restructuring 9 6 8

30 Black Black Sibling With Red Niece double black  Solve double black using AVL restructuring 9 6 8 8 6 9

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

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

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

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

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

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

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

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

39 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

40 Do the Activity

41 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


Ads by Google