Presentation is loading. Please wait.

Presentation is loading. Please wait.

Red Black Tree Smt Genap 2011-2012. Outline Red-Black Trees ◦ Motivation ◦ Definition ◦ Operation Smt Genap 2011-2012.

Similar presentations


Presentation on theme: "Red Black Tree Smt Genap 2011-2012. Outline Red-Black Trees ◦ Motivation ◦ Definition ◦ Operation Smt Genap 2011-2012."— Presentation transcript:

1 Red Black Tree Smt Genap 2011-2012

2 Outline Red-Black Trees ◦ Motivation ◦ Definition ◦ Operation Smt Genap 2011-2012

3 Motivation Binary Search Trees should be balanced. AVL Trees need 2 passes: top-down insertion/deletion and bottom-up rebalancing  Need recursive implementation Red-Black Trees need 1 pass: top-down rebalancing and insertion/deletion  Can be implemented iteratively, faster Red-Black Trees have slightly weaker balance restrictions  Less effort to maintain  In practice, worst case is similar to AVL Trees Smt Genap 2011-2012

4 Red-Black Trees: Definition Rules of Red-Black Trees: 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 ◦ consecutive red nodes are disallowed 4. Every path from a node to a null reference must contain the same number of black nodes Convention: null nodes are black Smt Genap 2011-2012

5 30 15 550 10 70 8560 4055 809065 20 Red-Black Trees The insertion sequence is 10, 85, 15, 70, 20, 60, 30, 50, 65, 80, 90, 40, 5, 55 Smt Genap 2011-2012

6 Red-Black Trees: Properties Smt Genap 2011-2012 Each path must contain the same number of black nodes. (Rule #4) Consecutive red nodes are not allowed. (Rule #3) The longest path is at most twice the length of the shortest path

7 Red-Black Trees: Properties B = total black nodes from root to leaf N = total all nodes H = height Smt Genap 2011-2012 All operations guaranteed logarithmic!

8 Insertion A new node must be colored red ◦ Why?  A new item is always inserted as a leaf in the tree  If we color a new item black, then the number of black nodes from root would be different (violate property #4) ◦ If the parent is black, no problem. ◦ If the parent is red, we create two consecutive red nodes (violate property #3)  Thus, we have to do some rotating/recolouring… Remember convention: null nodes are black Smt Genap 2011-2012

9 AB G X S P C DE AB G X S P C DE Single Rotation X: new node P: parent S: sibling G: Grandparent Case after insertion: ◦ Consecutive red (P & X) ◦ Sibling of parent (S) is black ◦ X is “outer node” (left-left or right-right) Smt Genap 2011-2012

10 BC G X S P A DE AB G P S X C DE Double Rotation X: new node P: parent S: sibling G: Grandparent Smt Genap 2011-2012 Case after insertion: Consecutive red (P & X) Sibling of parent (S) is black X is “inner node” (left-right or left)

11 Single Rotation (bottom-up) Case after insertion: ◦ Consecutive red ◦ Sibling of parent is red ◦ Outer node (left-left or right-right) Smt Genap 2011-2012 AB G X SP C DE AB G X S P C DE But what if P’s parent is red?  We have to keep going up the tree all the way to the root 

12 Top-Down Insertion The solution: prevent S from ever being red! Starting from the root (searching for insertion point) ◦ Never allow 2 red siblings ◦ If we see a node X with 2 red children, do a colour flip. Smt Genap 2011-2012 X C2C1 X C2

13 Color Flip ◦ Maintains property #4 ◦ Possible violation of #3: if X’s parent is red!  Do single or double rotation  X’s parent’s sibling can never be red! ◦ Set the root to black (to maintain property #2) Smt Genap 2011-2012 X C2C1 X C2

14 AB G X SP C DE Color Flip (2) Smt Genap 2011-2012 AB G X SP C DE If we do the colour flipping on the way down to the insertion point, we will never reach a condition where P & S are red!

15 30 15 5 10 70 85 60 50 55 8090 65 20 40 Example: Insert 18 Smt Genap 2011-2012 18

16 30 15 5 10 70 85 60 50 55 8090 65 20 40 Example: Insert 2 Smt Genap 2011-2012 18 2

17 30 15 2 5 70 85 60 50 55 8090 65 20 40 Example: Insert 2 Smt Genap 2011-2012 18 10

18 30 15 2 5 70 85 60 50 55 8090 65 20 40 Example: Insert 45 (Illustration) Smt Genap 2011-2012 18 10 45

19 30 15 2 5 70 85 60 50 55 8090 65 20 40 Example: Insert 45 (Top-Down Color Flip) Smt Genap 2011-2012 18 10 45 Color-flip!

20 30 15 2 5 70 85 60 50 55 8090 65 20 40 Example: Insert 45 (Top-Down Color Flip) Smt Genap 2011-2012 18 10 45 Color-flip!

21 30 15 2 5 70 85 60 50 55 8090 65 20 40 Example: Insert 45 (Single Rotate) Smt Genap 2011-2012 18 10 45

22 30 15 2 5 70 85 60 50 55 8090 65 20 40 Example: Insert 45 (Single Rotate) Smt Genap 2011-2012 18 10 45

23 Red-Black Tree Insertion: Exercise The insertion sequence is 10, 85, 15, 70, 20, 60, 30, 50, 65, 80, 90, 40, 5, 55 Smt Genap 2011-2012

24 Red-Black Tree: Deletion Deletion in BST: only leaf nodes or nodes with one child are really deleted (Why?) If the deleted node is red: no problem (all properties maintained). Smt Genap 2011-2012 Leaf nodes: Single child nodes:

25 Top-Down Deletion If node to be deleted is black  violate property #4 Always ensure that the node to be deleted is red. Top-down traversal from root (looking for node to be deleted): Smt Genap 2011-2012 X: visited node P: parent S: sibling B P S X A CD Idea: make sure that X is red!

26 Possible cases P is red (inductive invariant) X and S are black (result of property #3) 2 cases: ◦ 1. Both X’s children (A & B) are black ◦ 2. X has at least one red child (A, B, or both) Smt Genap 2011-2012 B P S X A CD

27 Case 1: Both X’s children are black Depends on children of S (C & D): ◦ Both C & D are black: simply colour-flip: Smt Genap 2011-2012 B P S X A C D B P S X A C D

28 Case 1: Both X’s children are black Outer child of S (C) is Red: do a single rotation and recolour B P S X A C D C S D P B X A Smt Genap 2011-2012

29 Case 1: Both X’s children are black Inner child of S (C) is Red: do a double rotation and recolour Smt Genap 2011-2012 B P S X A D C C S P B X A D

30 Case 2: One/Both of X’s children is red Recurse down to X’s child If we land on a red node, fine. If we land on a black node, rotate sibling and parent: Smt Genap 2011-2012 B P S X A C C S P B X A D D

31 Summary Red-Black trees use color as balancing information instead of height in AVL trees. An insertion may cause a local perturbation (two consecutive red nodes) The pertubation is either ◦ resolved locally (rotations), or ◦ propagated to a higher level in the tree by recoloring (color flip) O(1) for a rotation or color flip At most one restructuring per insertion. O(log n) color flips Total time: O(log n) Smt Genap 2011-2012


Download ppt "Red Black Tree Smt Genap 2011-2012. Outline Red-Black Trees ◦ Motivation ◦ Definition ◦ Operation Smt Genap 2011-2012."

Similar presentations


Ads by Google