Presentation is loading. Please wait.

Presentation is loading. Please wait.

© 2004 Goodrich, Tamassia Red-Black Trees1 6 3 8 4 v z.

Similar presentations


Presentation on theme: "© 2004 Goodrich, Tamassia Red-Black Trees1 6 3 8 4 v z."— Presentation transcript:

1 © 2004 Goodrich, Tamassia Red-Black Trees1 6 3 8 4 v z

2 2 From 2-3-4 to Red-Black Trees A red-black (RB) tree is a representation of a 2-3-4 tree by means of a binary tree whose nodes are colored red or black In comparison with its associated 2-3-4 tree, a red-black tree has Same logarithmic time performance Easier to implement (with a single node type) Harder to understand 2 6 73 54 4 6 27 5 3 3 5 OR

3 Red-Black Trees3 An RB tree is a BST with the following properties: Root Property: the root is black External Property: every leaf is black Internal Property: the children of a red node are black  No path from the root to the leaf has two consecutive red nodes. Depth Property: all the leaves have the same black depth  Each of the paths from the root to the leaves have the same number of black nodes. 9 15 4 62 12 7 21

4 More about RB Trees Insertion Nodes are inserted in the same way as a BST Tree is updated by restructuring and recoloring Red-Black Trees4

5 5 Height of a Red-Black Tree Theorem: A red-black tree storing n entries has height O(log n) Proof: The height of a red-black tree is at most twice the height of its associated 2-3-4 tree, which is O(log n) The search algorithm for a binary search tree is the same as that for a binary search tree By the above theorem, searching in a red-black tree takes O(log n) time How about an alternative proof without using 2-3-4 trees?

6 Conversion between 2-3-4 and RB Trees Red-Black Trees6 2-3-4 treeRed-black trees

7 7 Insertion To perform operation put (k, o), we execute the insertion algorithm for binary search trees and color red the newly inserted node z unless it is the root We preserve the root, external, and depth properties If the parent v of z is black, we also preserve the internal property and we are done Else ( v is red ) we have a double red (i.e., a violation of the internal property), which requires a reorganization of the tree Example where the insertion of 4 causes a double red: 6 3 8 6 3 8 4 z vv z The inserted node is always red, why?

8 Red-Black Trees8 Remedying a Double Red Consider a double red with child z and parent v, and let w be the sibling of v 4 6 7 z vw 2 4 6 7.. 2.. Case 1: w is black The double red is an incorrect replacement of a 4-node Restructuring: we change the 4-node replacement Case 2: w is red The double red corresponds to an overflow Recoloring: we perform the equivalent of a split 4 6 7 z v 2 4 6 7 2 w Uncle of z

9 Red-Black Trees9 Restructuring (1/2) A restructuring remedies a child-parent double red when the uncle of the inserted node is black It is equivalent to restoring the correct replacement of a 4-node The internal property is restored and the other properties are preserved 4 6 7 z v w 2 4 6 7.. 2.. 4 6 7 z v w 2 4 6 7.. 2.. Uncle of z

10 Red-Black Trees10 Restructuring (2/2) There are four restructuring configurations depending on whether the double red nodes are left or right children 2 4 6 6 2 4 6 4 2 2 6 4 2 6 4

11 Red-Black Trees11 Recoloring A recoloring remedies a child-parent double red when the uncle of the inserted node is red The parent v and its sibling w become black and the grandparent u becomes red, unless it is the root  To keep the depth property It is equivalent to performing a split on a 5-node The double red violation may propagate to the grandparent u 4 6 7 z v 2 4 6 7 2 w 4 6 7 z v 6 7 2 w … 4 … 2 Uncle of z May propagate…

12 Summary of Insertion Two cases of insertions Uncle is black  Restructure  Takes O(1)  Could be a single or double rotations Uncle is red  Recolor  Takes O(log n) since it may propagate  Corresponds to splitting a node in a 2-3-4 tree Red-Black Trees12

13 Example of Insertion (1/3) Red-Black Trees13 Insert 7 Insert 12 Insert 15 Restructure RecolorInsert 3Insert 5

14 Example of Insertion (2/3) Red-Black Trees14 Insert 14 Restructure Insert 18Recolor

15 Example of Insertion (3/3) Red-Black Trees15 Insert 16 Insert 17 Recolor Cascaded restructure Restructure Double red!

16 Resources of RB Trees Insertion animation Animation  Pay attention to the propagation… More interactive animation Insertion rule Rationale behind insertion Proof of logarithmic height (w/o using 2-3- 4 trees) Proof of logarithmic height Red-Black Trees16

17 Red-Black Trees17 Analysis of Insertion Recall that a red-black tree has O(log n) height Step 1 takes O(log n) time because we visit O(log n) nodes Step 2 takes O(1) time Step 3 takes O(log n) time because we perform O(log n) recolorings, each taking O(1) time, and at most one restructuring taking O(1) time Thus, an insertion in a red- black tree takes O(log n) time Algorithm put(k, o) 1.We search for key k to locate the insertion node z 2.We add the new entry (k, o) at node z and color z red 3. while doubleRed(z) if isBlack(sibling(parent(z))) z  restructure(z) return else { sibling(parent(z) is red } z  recolor(z)

18 Red-Black Trees18 Deletion To do erase (k), we first execute the deletion algorithm for BST Let v be the internal node removed, w the external node removed, and r the sibling of w If either v or r was red, we color r black and we are done Else ( v and r were both black) we color r double black, which is a violation of the depth property requiring a update of the tree Example where the deletion of 8 causes a double black: 6 3 8 4 v rw 6 3 4 r

19 Red-Black Trees19 Remedying a Double Black To remedy a double black node w with sibling y : Case 1: y is black and has a red child We perform a restructuring, equivalent to a transfer, and we are done Case 2: y is black and its children are both black We perform a recoloring, equivalent to a fusion, which may propagate up the double black violation Case 3: y is red We perform an adjustment, equivalent to choosing a different representation of a 3-node, after which either Case 1 or Case 2 applies Deletion in a red-black tree takes O(log n) time

20 Case 1: Restructuring 20 Either R or B

21 Case 2: Recoloring 21

22 Case 3: Adjustment 22

23 Example of Deletion (1/3) 23 Delete 3 Delete 12 Restructure Case 1 of restructuring (Transfer in 2-3-4 trees)

24 Example of Deletion (2/3) 24 Delete 18 Recolor Delete 17 Delete 15 Case 2 of recoloring (Fusion in 2-3-4 trees)

25 Example of Deletion (3/3) 25 Adjust Recolor Case 3 of adjustment (A different rep. of 3-node ) Case 3 of adjustment (Fusion in 2-3-4 trees ) Delete 16

26 Case 1: Restructuring 26 Restructure Case 1 of restructuring (Transfer in 2-3-4 trees) Transfer 5, 14, 16 4 17, 18 7 15 7, 14, 16 4, 5 17, 18 x 15

27 Case 2: Recoloring Red-Black Trees27 Recolor Case 2 of recoloring (Fusion in 2-3-4 trees) Fusion 5, 14 4 15, 16 7 5, 14, 16 4 x 7 15

28 Case 3: Adjustment 28 Adjust Recolor Case 3 of adjustment (A different rep. of 3-node ) Fusion 5 4 7, 14 5, 14 4 x 7 Case 3 of adjustment (Fusion in 2-3-4 trees )

29 29 Red-Black Tree Update Insertion (remedy double red) Red-black tree action2-3-4 tree actionresult restructuring change of 4-node representation double red removed recoloringsplit double red removed or propagated up Deletion (remedy double black) Red-black tree action2-3-4 tree actionresult restructuringtransferdouble black removed recoloringfusion double black removed or propagated up adjustment change of 3-node representation restructuring or recoloring follows


Download ppt "© 2004 Goodrich, Tamassia Red-Black Trees1 6 3 8 4 v z."

Similar presentations


Ads by Google