Presentation is loading. Please wait.

Presentation is loading. Please wait.

Advanced Trees Part III Briana B. Morrison Adapted from Alan Eugenio & William J. Collins.

Similar presentations


Presentation on theme: "Advanced Trees Part III Briana B. Morrison Adapted from Alan Eugenio & William J. Collins."— Presentation transcript:

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


Download ppt "Advanced Trees Part III Briana B. Morrison Adapted from Alan Eugenio & William J. Collins."

Similar presentations


Ads by Google