Red-Black Trees v z Red-Black Trees 1 Red-Black Trees

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   
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 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
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.
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.
CSC Analysis of Algorithms 3-1 CSC401 – Analysis of Algorithms Chapter 3 Search Trees and Skip Lists Objectives: Review binary search trees and present.
Course: Programming II - Abstract Data Types Red-Black TreesSlide Number 1 Balanced Search Trees Binary Search Tree data structures can allow insertion,
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.
© 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
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.
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)
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
Part-D1 Binary Search Trees
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
Lecture 17 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
Multi-Way Search Trees
Red-Black Trees 11/26/2018 3:42 PM AVL Trees v z AVL Trees.
(2,4) Trees /26/2018 3:48 PM (2,4) Trees (2,4) Trees
Red-Black Trees Bottom-Up Deletion.
11 Search Trees Hongfei Yan May 18, 2016.
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
Hashing, B - Trees and Red – Black Trees using Parallel Algorithms & Sequential Algorithms By Yazeed K. Almarshoud.
(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:

Red-Black Trees v z 6 3 8 4 Red-Black Trees 1 Red-Black Trees 07/22/16 17:14 07/22/16 17:14 Red-Black Trees 6 v 3 8 z 4 Red-Black Trees 1 1

Red-Black Trees 07/22/16 17:14 Red-Black Trees A red-black tree is a binary search tree that satisfies four 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 4 15 2 6 12 21 7 Red-Black Trees 2

From (2,4) to Red-Black Trees 07/22/16 17:14 From (2,4) to Red-Black Trees A red-black tree is equivalent to a (2,4) tree. The red-black tree has: the same logarithmic time performance, and simpler implementation with a single node type. 4 3 5 2 6 7 4 5 3 6 OR 3 5 2 7 Red-Black Trees 3

Height of a Red-Black Tree Red-Black Trees 07/22/16 17:14 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,4) tree, which is O(log n). The search algorithm for a red-black 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. Red-Black Trees 4

Red-Black Trees 07/22/16 17:14 Insertion To insert k, first execute the insertion algorithm for binary search trees and color red the newly inserted node z unless it is the root. The root, external, and depth properties persist. If the parent v of z is black, the internal property persists and we are done. Else a double red (a violation of the internal property) occurs, which requires a reorganization of the tree. Example where the insertion of 4 causes a double red: 6 6 v v 3 8 3 8 z z 4 Red-Black Trees 5

Red-Black Trees 07/22/16 17:14 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: fix the 4-node replacement. Case 2: w is red. The double red corresponds to an overflow. Recoloring: perform the equivalent of a split. 4 4 w v w v 2 7 2 7 z z 6 6 4 6 7 2 4 6 7 .. 2 .. Red-Black Trees 6

Red-Black Trees 07/22/16 17:14 Restructuring A restructuring remedies a double red where the parent red node has a black sibling. It is equivalent to creating the correct replacement of a 4-node. Internal property is restored and the other properties persist. z u 4 6 w v u v 2 7 4 7 z w 6 2 4 6 7 4 6 7 .. 2 .. .. 2 .. Red-Black Trees 7

Red-Black Trees 07/22/16 17:14 Restructuring (cont.) There are four restructuring configurations depending on whether the double red nodes are left or right children. 6 4 2 6 2 4 2 6 4 2 6 4 4 2 6 Red-Black Trees 8

Restructuring 1 and 2 a = u single rotation b = v b = v a = u c = z Red-Black Trees 07/22/16 17:14 Restructuring 1 and 2 a = u single rotation b = v b = v a = u c = z c = z T T 3 T T T T T 1 3 1 2 T 2 c = u single rotation b = v b = v a = z c = u a = z T T 3 T T T T T 3 1 2 1 T 2 Red-Black Trees 9

Restructuring 3 and 4 double rotation a = u b = z c = v a = u c = v Red-Black Trees 07/22/16 17:14 Restructuring 3 and 4 double rotation a = u b = z c = v a = u c = v b = z T T 2 T T T T T 2 3 1 3 T 1 double rotation c = u b = z a = v a = v c = u b = z T T 2 T T T T T 3 2 3 1 T 1 Red-Black Trees 10

Red-Black Trees 07/22/16 17:14 Recoloring A recoloring remedies a double red where 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, preserving the depth property. This is equivalent to performing a split on a 5-node. The double red violation may propagate to the grandparent u. u u 4 4 w v v w 2 7 2 7 z z 6 6 … 4 … 2 4 6 7 2 6 7 Red-Black Trees 11

Analysis of Insertion Algorithm insert(k, o) Red-Black Trees 07/22/16 17:14 Analysis of Insertion Algorithm insert(k, o) 1. Search for key k to locate the insertion node z 2. 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) A red-black tree has O(log n) height. Step 1 takes O(log n) time because it visits O(log n) nodes. Step 2 takes O(1) time. Step 3 takes O(log n) time because it performs O(log n) recolorings, each taking O(1) time, and at most one restructuring taking O(1) time. Thus, insertion in a red-black tree takes O(log n) time. Red-Black Trees 12

Red-Black Trees 07/22/16 17:14 Deletion To delete k, first execute binary search tree deletion. 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, color r black and we are done. Else color r double black, which is a violation of the depth property requiring a reorganization of the tree. Example where the deletion of 8 causes a double black: 6 6 v r 3 8 3 r w 4 4 Red-Black Trees 13

Remedying a Double Black Red-Black Trees 07/22/16 17:14 Remedying a Double Black A double black represents underflow in 2-4 tree deletion. The repair algorithm for a double black node r with sibling y has three cases. Case 1: y is black and has a red child z. Perform a restructuring, equivalent to a transfer. Color the new root the color of x, and the other nodes black. x 6 4 y r 3 3 3 6 z r 4 4 Red-Black Trees 14

Remedying a Double Black Red-Black Trees 07/22/16 17:14 Remedying a Double Black Case 2: y is black and its children are both black. Perform a recoloring, equivalent to a fusion. Color y red and r black. If x is red, color it black and we are done. If x is black, color it double black and recurse. x x 6 6 y y r r 3 3 3 3 Red-Black Trees 15

Remedying a Double Black Red-Black Trees 07/22/16 17:14 Remedying a Double Black Case 3: y is red. Perform an adjustment, equivalent to choosing a different representation of a 3-node. Color y black and x red. Either case 1 applies, or case 2 applies and the parent of r is red. x 6 4 y r 4 3 7 3 6 r z 3 7 Red-Black Trees 16