Download presentation
Presentation is loading. Please wait.
Published byCleopatra Moore Modified over 9 years ago
1
Advanced Trees Part III Briana B. Morrison Adapted from Alan Eugenio & William J. Collins
2
Advanced Trees (Part III) 2 Topics 2-3-4 Search Trees Red Black Trees
3
Advanced Trees (Part III) 3 2-3-4 Trees 2-3-4 Trees are just like 2-3 trees, except on inserts and deletes, the split (and/or merge) takes place before the insert (it’s done on the way down the tree rather than on the way back up). 2-3-4 trees are implemented, as a red-black tree.
4
Advanced Trees (Part III) 4 3 Possible Kinds of Nodes
5
Advanced Trees (Part III) 5 2-3-4 Tree Example
6
Advanced Trees (Part III) 6 Example of Insertion in a 2-3-4 Tree C
7
Advanced Trees (Part III) 7 Another Insertion Example of 2-3-4 Tree Insert: 2, 15, 12, 4, 8, 10, 25, 35, 55, ….11
8
Advanced Trees (Part III) 8 Example (Cont…) (4, 12, 25) Insert 11, 9, …5
9
Advanced Trees (Part III) 9 Example (Cont…) Insert 5, 7
10
Advanced Trees (Part III) 10
11
Advanced Trees (Part III) 11
12
Advanced Trees (Part III) 12 Red-Black Tree A red-black tree can also be defined as a binary search tree that satisfies 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 Depth Property: all the leaves have the same black depth 9 15 4 62 12 7 21
13
Advanced Trees (Part III) 13 Binary Search Tree and Red/Black Tree
14
Advanced Trees (Part III) 14
15
Advanced Trees (Part III) 15
16
Advanced Trees (Part III) 16
17
Advanced Trees (Part III) 17 THIS IS NOT A RED- BLACK TREE: THE PATH FROM 60 TO 80 HAS ONLY ONE BLACK ELEMENT!
18
Advanced Trees (Part III) 18
19
Advanced Trees (Part III) 19 Red Black Trees as B-Trees of Order 4 Start with a B-tree of order 4 (so each node contains 1, 2, or 3 entries) Convert a node with 3 entries into a binary search tree by:
20
Advanced Trees (Part III) 20 Red-Black Trees
21
Advanced Trees (Part III) 21 From (2,4) to Red-Black Trees A red-black tree is a representation of a (2,4) tree by means of a binary tree whose nodes are colored red or black In comparison with its associated (2,4) tree, a red-black tree has same logarithmic time performance simpler implementation with a single node type 2 6 73 54 4 6 27 5 3 3 5 OR
22
Advanced Trees (Part III) 22 Converting a 2-3-4 Tree to Red-Black Tree Example
23
Advanced Trees (Part III) 23
24
Advanced Trees (Part III) 24
25
Advanced Trees (Part III) 25
26
Advanced Trees (Part III) 26
27
Advanced Trees (Part III) 27
28
Advanced Trees (Part III) 28
29
Advanced Trees (Part III) 29 Red-Black Tree Algorithms Find – just like binary search tree Performance? Insertion Deletion
30
Advanced Trees (Part III) 30
31
Advanced Trees (Part III) 31
32
Advanced Trees (Part III) 32 VIOLATES RED RULE, NEED TO FLIP SOME COLORS (50)
33
Advanced Trees (Part III) 33 VIOLATES PATH RULE, NEED TO FLIP SOME COLORS (30)
34
Advanced Trees (Part III) 34 VIOLATES RED RULE, NEED TO FLIP SOME COLORS (20)
35
Advanced Trees (Part III) 35
36
Advanced Trees (Part III) 36 THIS TREE VIOLATES THE RED RULE.
37
Advanced Trees (Part III) 37 THIS TREE VIOLATES THE PATH RULE.
38
Advanced Trees (Part III) 38
39
Advanced Trees (Part III) 39
40
Advanced Trees (Part III) 40
41
Advanced Trees (Part III) 41
42
Advanced Trees (Part III) 42
43
Advanced Trees (Part III) 43
44
Advanced Trees (Part III) 44
45
Advanced Trees (Part III) 45
46
Advanced Trees (Part III) 46
47
Advanced Trees (Part III) 47
48
Advanced Trees (Part III) 48
49
Advanced Trees (Part III) 49
50
Advanced Trees (Part III) 50
51
Advanced Trees (Part III) 51
52
Advanced Trees (Part III) 52
53
Advanced Trees (Part III) 53
54
Advanced Trees (Part III) 54
55
Advanced Trees (Part III) 55 Building A Red-Black Tree Let’s build a red-black tree both ways As a 2-3-4 tree As a red-black tree Insert the following values 2, 15, 12, 4, 8, 10, 25, 35
56
Advanced Trees (Part III) 56 Building A Red-Black Tree Insert 15 and 12 Insert 4
57
Advanced Trees (Part III) 57 Insert 8 Insert 10 Insert 25 Insert 35
58
Advanced Trees (Part III) 58 Insertion To perform operation insertItem (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
59
Advanced Trees (Part III) 59 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
60
Advanced Trees (Part III) 60 Restructuring A restructuring remedies a child-parent double red when the parent red node has a black sibling 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..
61
Advanced Trees (Part III) 61 Restructuring (cont.) 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
62
Advanced Trees (Part III) 62 Recoloring A recoloring remedies a child-parent double red when the parent red node has a red sibling The parent v and its sibling w become black and the grandparent u becomes red, unless it is the root 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
63
Advanced Trees (Part III) 63 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 insertItem(k, o) 1.We search for key k to locate the insertion node z 2.We add the new item (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)
64
Advanced Trees (Part III) 64
65
Advanced Trees (Part III) 65
66
Advanced Trees (Part III) 66 Deletion To perform operation remove (k), we first execute the deletion algorithm for binary search trees Let v be the internal node removed, w the external node removed, and r the sibling of w If either v of 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 internal property requiring a reorganization of the tree Example where the deletion of 8 causes a double black: 6 3 8 4 v rw 6 3 4 r
67
Advanced Trees (Part III) 67 Remedying a Double Black The algorithm for remedying a double black node w with sibling y considers three cases 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
68
Advanced Trees (Part III) 68 Red-Black Tree Reorganization Insertion remedy double red Red-black tree action(2,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 action(2,4) tree actionresult restructuringtransferdouble black removed recoloringfusion double black removed or propagated up adjustment change of 3-node representation restructuring or recoloring follows
69
Advanced Trees (Part III) 69 Tree Summary General Trees Multiway search trees B trees 2-3 search trees Tries AVL Trees 2-3-4 trees Red-black trees
70
Advanced Trees (Part III) 70 BST, Red-Black and AVL Example
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.