(2,4) Trees /6/ :26 AM (2,4) Trees (2,4) Trees

Slides:



Advertisements
Similar presentations
November 5, Algorithms and Data Structures Lecture VIII Simonas Šaltenis Nykredit Center for Database Research Aalborg University
Advertisements

A balanced life is a prefect life.
CSC401 – Analysis of Algorithms Lecture Notes 7 Multi-way Search Trees and Skip Lists Objectives: Introduce multi-way search trees especially (2,4) trees,
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.
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.
Binary Search Trees1 ADT for Map: Map stores elements (entries) so that they can be located quickly using keys. Each element (entry) is a key-value pair.
© 2004 Goodrich, Tamassia (2,4) Trees
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.
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.
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.
Data Structures Balanced Trees 1CSCI Outline  Balanced Search Trees 2-3 Trees Trees Red-Black Trees 2CSCI 3110.
Search Trees. Binary Search Tree (§10.1) A binary search tree is a binary tree storing keys (or key-element pairs) at its internal nodes and satisfying.
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, …
(2,4) Trees1 What are they? –They are search Trees (but not binary search trees) –They are also known as 2-4, trees.
Binary Search Trees1 Chapter 3, Sections 1 and 2: Binary Search Trees AVL Trees   
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
Part-D1 Binary Search Trees
TCSS 342, Winter 2006 Lecture Notes
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 < > =
Search Trees.
Red Black Trees
Lecture 17 Red-Black Trees
Chapter 10 Search Trees 10.1 Binary Search Trees Search Trees
Red-Black Trees v z Red-Black Trees 1 Red-Black Trees
Chapter 10.1 Binary Search Trees
Red-Black Trees 9/12/ :44 AM AVL Trees v z AVL Trees.
Lecture 22 Binary Search Trees Chapter 10 of textbook
Binary Search Trees < > = Binary Search Trees
Data Structures Balanced Trees CSCI
Red-Black Trees 11/13/2018 2:07 AM AVL Trees v z AVL Trees.
(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
CS202 - Fundamental Structures of Computer Science II
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
(2,4) Trees /26/2018 3:48 PM (2,4) Trees (2,4) Trees
11 Search Trees Hongfei Yan May 18, 2016.
(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.
(2,4) Trees /24/2019 7:30 PM (2,4) Trees (2,4) Trees
Red-Black Trees 2/24/ :17 AM AVL Trees v z AVL 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 5/19/2019 6:39 AM AVL Trees v z AVL Trees.
1 Lecture 13 CS2013.
Binary Search Trees < > = Dictionaries
Red-Black Trees v z /6/ :10 PM Red-Black Trees
Dictionaries 二○一九年九月二十四日 ADT for Map:
CS210- Lecture 20 July 19, 2005 Agenda Multiway Search Trees 2-4 Trees
Presentation transcript:

(2,4) Trees 9 2 5 7 10 14 5/6/2019 10:26 AM (2,4) Trees (2,4) Trees 2 5 7 10 14 5/6/2019 10:26 AM (2,4) Trees

Outline and Reading Multi-way search tree (§3.3.1) (2,4) tree (§3.3.2) Definition Search (2,4) tree (§3.3.2) Insertion Deletion Comparison of dictionary implementations 5/6/2019 10:26 AM (2,4) Trees

Multi-Way Search Tree A multi-way search tree is an ordered tree such that Each internal node has at least two children and stores d -1 key-element items (ki, oi), where d is the number of children For a node with children v1 v2 … vd storing keys k1 k2 … kd-1 keys in the subtree of v1 are less than k1 keys in the subtree of vi are between ki-1 and ki (i = 2, …, d - 1) keys in the subtree of vd are greater than kd-1 The leaves store no items and serve as placeholders 11 24 2 6 8 15 27 32 30 5/6/2019 10:26 AM (2,4) Trees

Multi-Way Inorder Traversal We can extend the notion of inorder traversal from binary trees to multi-way search trees Namely, we visit item (ki, oi) of node v between the recursive traversals of the subtrees of v rooted at children vi and vi + 1 An inorder traversal of a multi-way search tree visits the keys in increasing order 11 24 8 12 2 6 8 15 27 32 2 4 6 10 14 18 30 1 3 5 7 9 11 13 16 19 15 17 5/6/2019 10:26 AM (2,4) Trees

Multi-Way Searching Similar to search in a binary search tree A each internal node with children v1 v2 … vd and keys k1 k2 … kd-1 k = ki (i = 1, …, d - 1): the search terminates successfully k < k1: we continue the search in child v1 ki-1 < k < ki (i = 2, …, d - 1): we continue the search in child vi k > kd-1: we continue the search in child vd Reaching an external node terminates the search unsuccessfully Example: search for 30 11 24 2 6 8 15 27 32 30 5/6/2019 10:26 AM (2,4) Trees

(2,4) Tree A (2,4) tree (also called 2-4 tree or 2-3-4 tree) is a multi-way search with the following properties Node-Size Property: every internal node has at most four children Depth Property: all the external nodes have the same depth Depending on the number of children, an internal node of a (2,4) tree is called a 2-node, 3-node or 4-node 10 15 24 2 8 12 18 27 32 5/6/2019 10:26 AM (2,4) Trees

Height of a (2,4) Tree Theorem: A (2,4) tree storing n items has height Θ(log n) Proof: Let h be the height of a (2,4) tree with n items By depth property, we can have at most 4 nodes at depth 1, at most 42 at depth 2, etc. Thus number of external nodes is at most 4h Also by depth property, have at least 2 nodes at depth 1, 22 nodes at depth 2, and in general at least 2h external nodes. Fact: a multiway search tree storing n items has n+1 external nodes (homework: C-3.16) Thus, 2h≤n+1 and n+1≤4h Taking logs gives h≤log(n+1) and log(n+1) ≤2h which proves the theorem. 5/6/2019 10:26 AM (2,4) Trees

Height of a (2,4) Tree Searching in a (2,4) tree with n items takes O(log n) time A direct consequence of our height theorem. 1 2 2h-1 items h-1 h depth 5/6/2019 10:26 AM (2,4) Trees

Insertion We insert a new item (k, o) at the parent v of the leaf reached by searching for k We preserve the depth property but We may cause an overflow (i.e., node v may become a 5-node) Example: inserting key 30 causes an overflow 10 15 24 v 2 8 12 18 27 32 35 10 15 24 v 2 8 12 18 27 30 32 35 5/6/2019 10:26 AM (2,4) Trees

Overflow and Split We handle an overflow at a 5-node v with a split operation: let v1 … v5 be the children of v and k1 … k4 be the keys of v node v is replaced nodes v' and v" v' is a 3-node with keys k1 k2 and children v1 v2 v3 v" is a 2-node with key k4 and children v4 v5 key k3 is inserted into the parent u of v (a new root may be created) The overflow may propagate to the parent node u u u 15 24 15 24 32 v v' v" 12 18 27 30 32 35 12 18 27 30 35 v1 v2 v3 v4 v5 v1 v2 v3 v4 v5 5/6/2019 10:26 AM (2,4) Trees

Analysis of Insertion Algorithm insertItem(k, o) 1. We search for key k to locate the insertion node v 2. We add the new item (k, o) at node v 3. while overflow(v) if isRoot(v) create a new empty root above v v  split(v) Let T be a (2,4) tree with n items Tree T 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 each split takes O(1) time and we may perform O(log n) splits Thus, an insertion in a (2,4) tree takes O(log n) time 5/6/2019 10:26 AM (2,4) Trees

Deletion We reduce deletion of an item to the case where the item is at the node with leaf children Otherwise, we replace the item with its inorder successor (or, equivalently, with its inorder predecessor) and delete the latter item Example: to delete key 24, we replace it with 27 (inorder successor) 27 32 35 10 15 24 2 8 12 18 10 15 27 2 8 12 18 32 35 5/6/2019 10:26 AM (2,4) Trees

Underflow and Fusion u u w v v' Deleting an item from a node v may cause an underflow, where node v becomes a 1-node with one child and no keys To handle an underflow at node v with parent u, we consider two cases Case 1: the adjacent siblings of v are 2-nodes Fusion operation: we merge v with an adjacent sibling w and move an item from u to the merged node v' After a fusion, the underflow may propagate to the parent u u u 9 14 9 w v v' 2 5 7 10 2 5 7 10 14 5/6/2019 10:26 AM (2,4) Trees

Underflow and Transfer Case 2: an adjacent sibling w of v is a 3-node or a 4-node Transfer operation: 1. we move a child of w to v 2. we move an item from u to v 3. we move an item from w to u After a transfer, no underflow occurs u u 4 9 4 8 w v w v 2 6 8 2 6 9 5/6/2019 10:26 AM (2,4) Trees

Analysis of Deletion Let T be a (2,4) tree with n items Tree T has O(log n) height In a deletion operation We visit O(log n) nodes to locate the node from which to delete the item We handle an underflow with a series of O(log n) fusions, followed by at most one transfer Each fusion and transfer takes O(1) time Thus, deleting an item from a (2,4) tree takes O(log n) time 5/6/2019 10:26 AM (2,4) Trees

Implementing a Dictionary Comparison of efficient dictionary implementations Search Insert Delete Notes Hash Table 1 expected no ordered dictionary methods simple to implement Skip List log n high prob. randomized insertion (2,4) Tree log n worst-case complex to implement 5/6/2019 10:26 AM (2,4) Trees

Red-Black Trees v z 6 3 8 4 5/6/2019 10:26 AM (2,4) Trees (2,4) Trees

Outline and Reading From (2,4) trees to red-black trees (§3.3.3) Definition Height Insertion restructuring recoloring Deletion adjustment 5/6/2019 10:26 AM (2,4) Trees

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 4 3 5 2 6 7 4 5 3 6 OR 3 5 2 7 5/6/2019 10:26 AM (2,4) Trees

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 4 15 2 6 12 21 7 5/6/2019 10:26 AM (2,4) Trees

Height of a Red-Black Tree Theorem: A red-black tree storing n items 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 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 5/6/2019 10:26 AM (2,4) Trees

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 6 v v 3 8 3 8 z z 4 5/6/2019 10:26 AM (2,4) Trees

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: 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 4 w v w v 2 7 2 7 z z 6 6 4 6 7 2 4 6 7 .. 2 .. 5/6/2019 10:26 AM (2,4) Trees

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 z 4 6 w v v 2 7 4 7 z w 6 2 4 6 7 4 6 7 .. 2 .. .. 2 .. 5/6/2019 10:26 AM (2,4) Trees

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 5/6/2019 10:26 AM (2,4) Trees

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 4 w v w v 2 7 2 7 z z 6 6 … 4 … 2 4 6 7 2 6 7 5/6/2019 10:26 AM (2,4) Trees

Analysis of Insertion 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) 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 5/6/2019 10:26 AM (2,4) Trees

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 6 v r 3 8 3 r w 4 4 5/6/2019 10:26 AM (2,4) Trees

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 5/6/2019 10:26 AM (2,4) Trees

Red-Black Tree Reorganization Insertion remedy double red Red-black tree action (2,4) tree action result restructuring change of 4-node representation double red removed recoloring split double red removed or propagated up Deletion remedy double black Red-black tree action (2,4) tree action result restructuring transfer double black removed recoloring fusion double black removed or propagated up adjustment change of 3-node representation restructuring or recoloring follows 5/6/2019 10:26 AM (2,4) Trees