Download presentation
Presentation is loading. Please wait.
Published byMargery Richardson Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.