(2,4) Trees 2/15/2019 (2,4) Trees 9 2 5 7 10 14 (2,4) Trees.

Slides:



Advertisements
Similar presentations
CSC401 – Analysis of Algorithms Lecture Notes 7 Multi-way Search Trees and Skip Lists Objectives: Introduce multi-way search trees especially (2,4) trees,
Advertisements

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   
© 2004 Goodrich, Tamassia (2,4) Trees
CSC 212 Lecture 19: Splay Trees, (2,4) Trees, and Red-Black Trees.
CSC 213 – Large Scale Programming. Today’s Goals  Review a new search tree algorithm is needed  What real-world problems occur with old tree?  Why.
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.
2-3 Tree. Slide 2 Outline  Balanced Search Trees 2-3 Trees Trees.
Fall 2006 CSC311: Data Structures 1 Chapter 10: Search Trees Objectives: Binary Search Trees: Search, update, and implementation AVL Trees: Properties.
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.
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
Binary Search Trees < > = © 2010 Goodrich, Tamassia
Binary Search Trees < > =
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 < > =
Multiway Search Trees Data may not fit into main memory
Binary Search Trees < > =
Chapter 10 Search Trees 10.1 Binary Search Trees Search Trees
Priority Queues © 2010 Goodrich, Tamassia Priority Queues 1
Heaps 8/2/2018 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser,
Multiway search trees and the (2,4)-tree
Red-Black Trees v z Red-Black Trees 1 Red-Black Trees
Binary Search Tree Chapter 10.
Chapter 10.1 Binary Search Trees
Lecture 22 Binary Search Trees Chapter 10 of textbook
Binary Search Trees < > = Binary Search Trees
Heaps 9/13/2018 3:17 PM Heaps Heaps.
B-Trees Disk Storage What is a multiway tree? What is a B-tree?
Binary Tree and General Tree
Chapter 22 : Binary Trees, AVL Trees, and Priority Queues
(2,4) Trees (2,4) Trees 1 (2,4) Trees (2,4) Trees
Binary Search Trees < > = © 2010 Goodrich, Tamassia
Red-Black Trees v z Red-Black Trees 1 Red-Black Trees
Part-D1 Priority Queues
Binary Search 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
Binary Search Trees < > = Binary Search Trees
(2,4) Trees /26/2018 3:48 PM (2,4) Trees (2,4) Trees
© 2013 Goodrich, Tamassia, Goldwasser
Heaps 12/4/2018 5:27 AM Heaps /4/2018 5:27 AM Heaps.
11 Search Trees Hongfei Yan May 18, 2016.
(2,4) Trees (2,4) Trees (2,4) Trees.
Binary Search Trees < > =
B-Trees Disk Storage What is a multiway tree? What is a B-tree?
Red-Black Trees v z /17/2019 4:20 PM Red-Black Trees
B-Trees Disk Storage What is a multiway tree? What is a B-tree?
Binary Search Trees < > =
(2,4) Trees /24/2019 7:30 PM (2,4) Trees (2,4) Trees
Heaps © 2014 Goodrich, Tamassia, Goldwasser Heaps Heaps
(2,4) Trees (2,4) Trees (2,4) Trees.
Binary Search Trees < > =
(2,4) Trees /6/ :26 AM (2,4) Trees (2,4) Trees
1 Lecture 13 CS2013.
Binary Search Trees < > = Dictionaries
Red-Black Trees v z /6/ :10 PM Red-Black Trees
Heaps 9/29/2019 5:43 PM Heaps Heaps.
CS210- Lecture 20 July 19, 2005 Agenda Multiway Search Trees 2-4 Trees
CS210- Lecture 13 June 28, 2005 Agenda Heaps Complete Binary Tree
Presentation transcript:

(2,4) Trees 2/15/2019 (2,4) Trees 9 2 5 7 10 14 (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 (2,4) Trees

Multi-Way Inorder Traversal extend traversal from binary trees visit entry (ki, oi) of node v between the recursive traversals of the subtrees of v rooted at children vi (“left”) and vi + 1 (“right”) Consequently, visit 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 (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 (2,4) Trees

(2,4) Trees The book briefly discusses a variant called 2-3 trees—essentially the same idea 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 (2,4) Trees

Height of a (2,4) Tree Theorem: A (2,4) tree storing n items has height O(log n) Proof (worst case is complete binary tree, heap): Let h be the height of a (2,4) tree with n items Since there are at least 2i items at depth i = 0, … , h - 1 and no items at depth h, we have n  1 + 2 + 4 + … + 2h-1 = 2h - 1 Thus, h  log (n + 1) Searching in a (2,4) tree with n items takes O(log n) time depth items 1 1 2 h-1 2h-1 h (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 (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 (2,4) Trees

Pseudocode of Insertion Algorithm put(k, o) 1. We search for key k to locate the insertion node v 2. We add the new entry (k, o) at node v 3. while overflow(v) if isRoot(v) create a new empty root above v v  split(v) (2,4) Trees

Analysis of Insertion Algorithm put(k, o) 1. We search for key k to locate the insertion node v 2. We add the new entry (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 perform O(log n) splits Thus, an insertion in a (2,4) tree takes O(log n) time (2,4) Trees

Deletion We reduce deletion of an entry to the case where the item is at the node with leaf children Otherwise, we replace the entry with its inorder successor (or, equivalently, with its inorder predecessor) and delete the latter entry 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 (2,4) Trees

Underflow and Fusion u u w v v' Deleting an entry from a node v may cause an underflow 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 entry 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 (2,4) Trees

Underflow and Transfer To handle an underflow at node v with parent u, we consider two cases 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 (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 entry 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 (2,4) Trees

Comparison of Map Implementations Search Insert Delete Notes Hash Table 1 expected no ordered map methods simple to implement Sorted Array log n n ordered map methods Skip List log n high prob. ordered map methods randomized insertion AVL and (2,4) Tree log n worst-case complex to implement (2,4) Trees