1 / 29

Red-Black Trees

Learn about Red-Black Trees: properties, insertion, restructuring, recoloring, conversion from 2-3-4 trees, and analysis of insertion algorithm.

jjustin
Download Presentation

Red-Black Trees

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Red-Black Trees 6 v 8 3 z 4 Red-Black Trees

  2. 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 4 2 6 7 3 5 4 From 2-3-4 to Red-Black Trees 5 3 6 OR 3 5 2 7

  3. Red-Black Trees • 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 4 15 21 2 6 12 7 Red-Black Trees

  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 Trees

  5. Height of a Red-Black Tree • Theorem: A red-black tree storing nentries 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? Red-Black Trees

  6. Conversion between 2-3-4 and RB Trees 2-3-4 tree Red-black trees Red-Black Trees

  7. 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: Insertion 6 6 v v 8 8 3 3 z z 4 The inserted node is always red, why?

  8. Remedying a Double Red • Consider a double red with child z and parent v, and let w be the sibling of v 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 4 w v v w 7 7 2 2 z z 6 6 Uncle of z 4 6 7 2 4 6 7 .. 2 .. Red-Black Trees

  9. 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 z 6 4 v v w 7 7 2 4 z w 2 6 Uncle of z 4 6 7 4 6 7 .. 2 .. .. 2 .. Red-Black Trees

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

  11. 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 May propagate… 4 4 v v w w 7 7 2 2 z z 6 6 Uncle of z … 4 … 2 4 6 7 2 6 7 Red-Black Trees

  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 Trees

  13. Example of Insertion (1/3) Insert 7 Insert 12 Restructure Insert 15 Recolor Insert 3 Insert 5 Red-Black Trees

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

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

  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) Red-Black Trees

  17. Analysis of Insertion Algorithmput(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. whiledoubleRed(z) if isBlack(sibling(parent(z))) z  restructure(z) return else {sibling(parent(z) is red } z  recolor(z) • 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 Red-Black Trees

  18. 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 rdouble 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 6 v r 8 3 3 r w 4 4 Red-Black Trees

  19. 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 Red-Black Trees

  20. Either R or B Case 1:Restructuring Either R or B Either R or B

  21. Case 2: Recoloring

  22. Case 3: Adjustment

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

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

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

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

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

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

  29. Red-Black Tree Update

More Related