Download presentation

Presentation is loading. Please wait.

Published byDesiree Winchester Modified over 2 years ago

1
IKI 10100: Data Structures & Algorithms Ruli Manurung (acknowledgments to Denny & Ade Azurat) 1 Fasilkom UI Ruli Manurung (Fasilkom UI)IKI10100: Lecture Red Black Tree

2
2 Ruli Manurung (Fasilkom UI)IKI10100: Lecture Red-Black Trees Motivation Definition Operation Outline

3
3 Ruli Manurung (Fasilkom UI)IKI10100: Lecture 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 Motivation

4
4 Ruli Manurung (Fasilkom UI)IKI10100: Lecture 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

5
5 Ruli Manurung (Fasilkom UI)IKI10100: Lecture 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

6
6 Ruli Manurung (Fasilkom UI)IKI10100: Lecture Red-Black Trees: Properties 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
7 Ruli Manurung (Fasilkom UI)IKI10100: Lecture Red-Black Trees: Properties B = total black nodes from root to leaf N = total all nodes H = height All operations guaranteed logarithmic!

8
8 Ruli Manurung (Fasilkom UI)IKI10100: Lecture 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

9
9 Ruli Manurung (Fasilkom UI)IKI10100: Lecture 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)

10
10 Ruli Manurung (Fasilkom UI)IKI10100: Lecture 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 Case after insertion: Consecutive red (P & X) Sibling of parent (S) is black X is “inner node” (left-right or left)

11
11 Ruli Manurung (Fasilkom UI)IKI10100: Lecture Single Rotation (bottom-up) Case after insertion: Consecutive red Sibling of parent is red Outer node (left-left or right-right) 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
12 Ruli Manurung (Fasilkom UI)IKI10100: Lecture 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. X C2C1 X C2

13
13 Ruli Manurung (Fasilkom UI)IKI10100: Lecture 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) X C2C1 X C2

14
14 Ruli Manurung (Fasilkom UI)IKI10100: Lecture AB G X SP C DE Color Flip (2) 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
15 Ruli Manurung (Fasilkom UI)IKI10100: Lecture 30 15 5 10 70 85 60 50 55 8090 65 20 40 Example: Insert 18 18

16
16 Ruli Manurung (Fasilkom UI)IKI10100: Lecture 30 15 5 10 70 85 60 50 55 8090 65 20 40 Example: Insert 2 18 2

17
17 Ruli Manurung (Fasilkom UI)IKI10100: Lecture 30 15 2 5 70 85 60 50 55 8090 65 20 40 Example: Insert 2 18 10

18
18 Ruli Manurung (Fasilkom UI)IKI10100: Lecture 30 15 2 5 70 85 60 50 55 8090 65 20 40 Example: Insert 45 (Illustration) 18 10 45

19
19 Ruli Manurung (Fasilkom UI)IKI10100: Lecture 30 15 2 5 70 85 60 50 55 8090 65 20 40 Example: Insert 45 (Top-Down Color Flip) 18 10 45 Color-flip!

20
20 Ruli Manurung (Fasilkom UI)IKI10100: Lecture 30 15 2 5 70 85 60 50 55 8090 65 20 40 Example: Insert 45 (Top-Down Color Flip) 18 10 45 Color-flip!

21
21 Ruli Manurung (Fasilkom UI)IKI10100: Lecture 30 15 2 5 70 85 60 50 55 8090 65 20 40 Example: Insert 45 (Single Rotate) 18 10 45

22
22 Ruli Manurung (Fasilkom UI)IKI10100: Lecture 30 15 2 5 70 85 60 50 55 8090 65 20 40 Example: Insert 45 (Single Rotate) 18 10 45

23
23 Ruli Manurung (Fasilkom UI)IKI10100: Lecture Red-Black Tree Insertion: Exercise The insertion sequence is 10, 85, 15, 70, 20, 60, 30, 50, 65, 80, 90, 40, 5, 55

24
24 Ruli Manurung (Fasilkom UI)IKI10100: Lecture 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). Leaf nodes: Single child nodes:

25
25 Ruli Manurung (Fasilkom UI)IKI10100: Lecture 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): X: visited node P: parent S: sibling B P S X A CD Idea: make sure that X is red!

26
26 Ruli Manurung (Fasilkom UI)IKI10100: Lecture 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) B P S X A CD

27
27 Ruli Manurung (Fasilkom UI)IKI10100: Lecture Case 1: Both X’s children are black Depends on children of S (C & D): Both C & D are black: simply colour-flip: B P S X A C D B P S X A C D

28
28 Ruli Manurung (Fasilkom UI)IKI10100: Lecture 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

29
29 Ruli Manurung (Fasilkom UI)IKI10100: Lecture Case 1: Both X’s children are black Inner child of S (C) is Red: do a double rotation and recolour B P S X A D C C S P B X A D

30
30 Ruli Manurung (Fasilkom UI)IKI10100: Lecture 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: B P S X A C C S P B X A D D

31
31 Ruli Manurung (Fasilkom UI)IKI10100: Lecture 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) Summary

32
32 Ruli Manurung (Fasilkom UI)IKI10100: Lecture http://telaga.cs.ui.ac.id/WebKuliah/IKI101 00/resources/animation/data- structure/redblack/redblack.html (mirror from http://www.ece.uc.edu/~franco/C321/html/ RedBlack/redblack.html ) http://telaga.cs.ui.ac.id/WebKuliah/IKI101 00/resources/animation/data- structure/redblack/redblack.html Chapter 19.5 Further Reading

Similar presentations

Presentation is loading. Please wait....

OK

1 Red-Black Trees. 2 Black-Height of the tree = 4.

1 Red-Black Trees. 2 Black-Height of the tree = 4.

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on suspension type insulators examples Ppt on social etiquettes in india Ppt on electricity for class 10th math Ppt on buddhism in india Presentations ppt online reader Ppt on national education days Ppt on mapping space around us Ppt on national defence academy Ppt on satellite orbit map Pdf to ppt online