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

Slides:



Advertisements
Similar presentations
CSC 213 – Large Scale Programming. Red-Black Tree Properties black  Root Property: Root node painted black black  External Property: Leaves are painted.
Advertisements

AA Trees another alternative to AVL trees. Balanced Binary Search Trees A Binary Search Tree (BST) of N nodes is balanced if height is in O(log N) A balanced.
November 5, Algorithms and Data Structures Lecture VIII Simonas Šaltenis Nykredit Center for Database Research Aalborg University
A balanced life is a prefect life.
6/14/2015 6:48 AM(2,4) Trees /14/2015 6:48 AM(2,4) Trees2 Outline and Reading Multi-way search tree (§3.3.1) Definition Search (2,4)
Goodrich, Tamassia Search Trees1 Binary Search Trees   
Chapter 6: Transform and Conquer Trees, Red-Black Trees The Design and Analysis of Algorithms.
CSC 213 Lecture 9: Red-Black Trees. Announcements Reminder: Daily Quizzes should take 15 minutes Goal is to provide chance to see if you really understand.
1 /26 Red-black tree properties Every node in a red-black tree is either black or red Every null leaf is black No path from a leaf to a root can have two.
1 /26 Red-black tree properties Every node in a red-black tree is either black or red Every null leaf is black No path from a leaf to a root can have two.
1 Red-Black Trees. 2 Black-Height of the tree = 4.
1 Red-Black Trees. 2 Black-Height of the tree = 4.
1 COSC 2P03 Lecture #5 – Trees Part III, Heaps. 2 Today Take up the quiz Assignment Questions Red-Black Trees Binary Heaps Heap sort D-Heaps, Leftist.
Multi-Way search Trees Trees: a. Nodes may contain 1 or 2 items. b. A node with k items has k + 1 children c. All leaves are on same level.
© 2004 Goodrich, Tamassia (2,4) Trees
1 /26 Red-black tree properties Every node in a red-black tree is either black or red Every null leaf is black No path from a leaf to a root can have two.
CSC 212 Lecture 19: Splay Trees, (2,4) Trees, and Red-Black Trees.
Advanced Trees Part III Briana B. Morrison Adapted from Alan Eugenio & William J. Collins.
1 Red-Black Trees. 2 Definition: A red-black tree is a binary search tree where: –Every node is either red or black. –Each NULL pointer is considered.
CSC Analysis of Algorithms 3-1 CSC401 – Analysis of Algorithms Chapter 3 Search Trees and Skip Lists Objectives: Review binary search trees and present.
Analysis of Red-Black Tree Because of the rules of the Red-Black tree, its height is at most 2log(N + 1). Meaning that it is a balanced tree Time Analysis:
10/20/2015 2:03 PMRed-Black Trees v z. 10/20/2015 2:03 PMRed-Black Trees2 Outline and Reading From (2,4) trees to red-black trees (§9.5) Red-black.
© 2004 Goodrich, Tamassia Red-Black Trees v z.
1. 2 Setting Up Deletion As with binary search trees, we can always delete a node that has at least one external child If the key to be deleted is stored.
Beyond (2,4) Trees What do we know about (2,4)Trees? Balanced
Red-Black Trees Acknowledgment Many thanks to “erm” from Purdue University for this very interesting way of presenting this course material. 1.
Chapter 13 B Advanced Implementations of Tables – Balanced BSTs.
CSC401 – Analysis of Algorithms Lecture Notes 6 Dictionaries and Search Trees Objectives: Introduce dictionaries and its diverse implementations Introduce.
Fall 2006 CSC311: Data Structures 1 Chapter 10: Search Trees Objectives: Binary Search Trees: Search, update, and implementation AVL Trees: Properties.
Lecture 11COMPSCI.220.FS.T Balancing an AVLTree Two mirror-symmetric pairs of cases to rebalance the tree if after the insertion of a new key to.
CSC 213 – Large Scale Programming Lecture 21: Red-Black Trees.
CSC 213 Lecture 8: (2,4) Trees. Review of Last Lecture Binary Search Tree – plain and tall No balancing, no splaying, no speed AVL Tree – liberté, égalité,
© 2004 Goodrich, Tamassia Trees
3.1. Binary Search Trees   . Ordered Dictionaries Keys are assumed to come from a total order. Old operations: insert, delete, find, …
1 Binary Search Trees   . 2 Ordered Dictionaries Keys are assumed to come from a total order. New operations: closestKeyBefore(k) closestElemBefore(k)
Red-Black Trees Bottom-Up Deletion. Recall “ordinary” BST Delete 1.If vertex to be deleted is a leaf, just delete it. 2.If vertex to be deleted has just.
1 COMP9024: Data Structures and Algorithms Week Six: Search Trees Hui Wu Session 1, 2014
Red-Black Trees an alternative to AVL trees. Balanced Binary Search Trees A Binary Search Tree (BST) of N nodes is balanced if height is in O(log N) A.
1 Red-Black Trees. 2 A Red-Black Tree with NULLs shown Black-Height of the tree = 4.
Lecture 23 Red Black Tree Chapter 10 of textbook
AA Trees.
File Organization and Processing Week 3
COMP9024: Data Structures and Algorithms
Red-Black Trees v z Red-Black Trees Red-Black Trees
Red-Black Trees 5/17/2018 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and.
Red-Black Trees 5/22/2018 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and.
Binary Search Trees < > =
Red-Black Trees v z Red-Black Trees 1 Red-Black Trees
Red-Black Trees Bottom-Up Deletion.
Red-Black Trees Bottom-Up Deletion.
(2,4) Trees (2,4) Trees 1 (2,4) Trees (2,4) Trees
Red-Black Trees v z Red-Black Trees 1 Red-Black Trees
Red-Black Trees v z /20/2018 7:59 AM Red-Black Trees
Red-Black Trees v z Red-Black Trees Red-Black Trees
(2,4) Trees /26/2018 3:48 PM (2,4) Trees (2,4) Trees
Red-Black Trees Bottom-Up Deletion.
Red-Black Trees.
(2,4) Trees (2,4) Trees (2,4) Trees.
Binary Search Trees < > =
Algorithms and Data Structures Lecture VIII
Red-Black Trees v z /17/2019 4:20 PM Red-Black Trees
(2,4) Trees 2/15/2019 (2,4) Trees (2,4) Trees.
Red-Black Trees Bottom-Up Deletion.
(2,4) Trees /24/2019 7:30 PM (2,4) Trees (2,4) Trees
(2,4) Trees (2,4) Trees (2,4) Trees.
Red-Black Trees.
(2,4) Trees /6/ :26 AM (2,4) Trees (2,4) Trees
Binary Search Trees < > = Dictionaries
Red-Black Trees v z /6/ :10 PM Red-Black Trees
CS210- Lecture 20 July 19, 2005 Agenda Multiway Search Trees 2-4 Trees
Presentation transcript:

© 2004 Goodrich, Tamassia Red-Black Trees v z

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

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

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 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 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 trees?

Conversion between and RB Trees Red-Black Trees treeRed-black trees

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: z vv z The inserted node is always red, why?

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 z vw 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 z v w Uncle of z

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 z v w z v w Uncle of z

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

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 z v w z v w … 4 … 2 Uncle of z May propagate…

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 tree Red-Black Trees12

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

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

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

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 trees) Proof of logarithmic height Red-Black Trees16

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)

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: v rw r

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

Case 1: Restructuring 20 Either R or B

Case 2: Recoloring 21

Case 3: Adjustment 22

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

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

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

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

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

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 trees )

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