Lecture 16 2-3 Trees Professor Sin-Min Lee.

Slides:



Advertisements
Similar presentations
COL 106 Shweta Agrawal, Amit Kumar
Advertisements

Advanced Database Discussion B Trees. Motivation for B-Trees So far we have assumed that we can store an entire data structure in main memory What if.
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.
Balanced Search Trees. 2-3 Trees Trees Red-Black Trees AVL Trees.
A balanced life is a prefect life.
B-Trees. Motivation for B-Trees Index structures for large datasets cannot be stored in main memory Storing it on disk requires different approach to.
Data Structures and Algorithms1 B-Trees with Minimum=1 2-3 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)
CPSC 231 B-Trees (D.H.)1 LEARNING OBJECTIVES Problems with simple indexing. Multilevel indexing: B-Tree. –B-Tree creation: insertion and deletion of nodes.
B-Trees Disk Storage What is a multiway tree? What is a B-tree?
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.
Balanced Trees. Binary Search tree with a balance condition Why? For every node in the tree, the height of its left and right subtrees must differ by.
Indexing (cont.). Insertion in a B+ Tree Another B+ Tree
© 2006 Pearson Addison-Wesley. All rights reserved13 A-1 Chapter 13 Advanced Implementation of Tables.
2-3 Trees Professor Sin-Min Lee. Contents n Introduction n The 2-3 Trees Rules n The Advantage of 2-3 Trees n Searching For an Item in a 2-3 Tree n Inserting.
By : Budi Arifitama Pertemuan ke Objectives Upon completion you will be able to: Create and implement binary search trees Understand the operation.
Balanced Trees Ellen Walker CPSC 201 Data Structures Hiram College.
B+ Trees COMP
Data Structures CSCI 2720 Spring 2007 Balanced Trees.
Data Structures Balanced Trees 1CSCI Outline  Balanced Search Trees 2-3 Trees Trees Red-Black Trees 2CSCI 3110.
2-3 Trees, Trees Red-Black Trees
2-3 Tree. Slide 2 Outline  Balanced Search Trees 2-3 Trees Trees.
Binary Search Tree vs. Balanced Search Tree. Why care about advanced implementations? Same entries, different insertion sequence: 10,20,30,40,50,60,70,
Comp 335 File Structures B - Trees. Introduction Simple indexes provided a way to directly access a record in an entry sequenced file thereby decreasing.
Chapter 13 A Advanced Implementations of Tables. © 2004 Pearson Addison-Wesley. All rights reserved 13 A-2 Balanced Search Trees The efficiency of the.
© 2004 Goodrich, Tamassia Trees
1 Chapter 7 Objectives Upon completion you will be able to: Create and implement binary search trees Understand the operation of the binary search tree.
Balanced Search Trees Chapter 19 Data Structures and Problem Solving with C++: Walls and Mirrors, Carrano and Henry, © 2013.
COSC 2007 Data Structures II Chapter 13 Advanced Implementation of Tables I.
Question 4 Tutorial 8. Part A Insert 20, 10, 15, 5,7, 30, 25, 18, 37, 12 and 40 in sequence into an empty binary tree
Binary Search Trees Chapter 7 Objectives
Balanced Search Trees 2-3 Trees AVL Trees Red-Black Trees
COMP261 Lecture 23 B Trees.
TCSS 342, Winter 2006 Lecture Notes
Data Structures Balanced Trees CSCI 2720 Spring 2007.
AA Trees.
B-Trees B-Trees.
Data Structures and Algorithms
Multiway Search Trees Data may not fit into main memory
B-Trees B-Trees.
B-Trees B-Trees.
Multiway search trees and the (2,4)-tree
B-Trees Disk Storage What is a multiway tree? What is a B-tree?
(edited by Nadia Al-Ghreimil)
Data Structures and Algorithms
B Tree Adhiraj Goel 1RV07IS004.
Data Structures Balanced Trees CSCI
Trees and Binary Trees.
(2,4) Trees (2,4) Trees 1 (2,4) Trees (2,4) Trees
Lecture 26 Multiway Search Trees Chapter 11 of textbook
CS202 - Fundamental Structures of Computer Science II
(2,4) Trees /26/2018 3:48 PM (2,4) Trees (2,4) Trees
B-Tree.
(2,4) Trees (2,4) Trees (2,4) Trees.
CSIT 402 Data Structures II With thanks to TK Prasad
(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
Binary Trees, Binary Search Trees
(edited by Nadia Al-Ghreimil)
Solution for Section Worksheet 4, #7b & #7c
(2,4) Trees (2,4) Trees (2,4) Trees.
(2,4) Trees /6/ :26 AM (2,4) Trees (2,4) Trees
Mark Redekopp David Kempe
B-Trees.
B-Trees.
Heaps & Multi-way Search Trees
Binary Trees, Binary Search Trees
CS210- Lecture 20 July 19, 2005 Agenda Multiway Search Trees 2-4 Trees
Presentation transcript:

Lecture 16 2-3 Trees Professor Sin-Min Lee

Contents Introduction The 2-3 Trees Rules The Advantage of 2-3 Trees Searching For an Item in a 2-3 Tree Inserting an Item into a 2-3 Tree Removing an Item from a 2-3 Tree

INTRODUCTION What Is a 2-3 Tree? Definition: A 2-3 tree is a tree in which each internal node(nonleaf) has either 2 or 3 children, and all leaves are at the same level.

2-3 Trees a node may contain 1 or 2 keys all leaf nodes are at the same depth all non-leaf nodes (except the root) have either 1 key and two subtrees, or 2 keys and three subtrees insertion is at the leaf: if the leaf overflows, split it into two leaves, insert them into the parent, which may also overflow deletion is at the leaf: if the leaf underflows (has no items), merge it with a sibling, removing a value and subtree from the parent, which may also underflow the only changes in depth are when the root splits or underflows

A 2-3 Tree of height 3

2-3 Tree vs. Binary Tree A 2-3 tree is not a binary tree since a node in the 2-3 tree can have three children. A 2-3 tree does resemble a full binary tree. If a 2-3 tree does not contain 3-nodes, it is like a full binary tree since all its internal nodes have two children and all its leaves are at the same level.

Cont. If a 2-3 tree does have three children, the tree will contain more nodes than a full binary tree of the same height. Therefore, a 2-3 tree of height h has at least 2^h - 1 nodes. In other words, a 2-3 tree with N nodes never has height greater then log (N+1), the minimum height of a binary tree with N nodes.

Example of a 2-3 Tree The items in the 2-3 are ordered by their search keys. 50 90 70 120 150 20 30 40 80 160 10 60 100 110

Node Representation of 2-3 Trees Using a typedef statement typedef treeNode* ptrType; struct treeNode { treeItemType SmallItem,LargeItem; ptrType LChildPtr, MChildPtr, RChildPtr; };

Node Representation of 2-3 Tree (cont.) When a node contains only one data item, you can place it in Small-Item and use LChildPtr and MChildPtr to point to the node’s children. To be safe, you can place NULL in RChildPtr.

The Advantages of the 2-3 trees Even though searching a 2-3 tree is not more efficient than searching a binary search tree, by allowing the node of a 2-3 tree to have three children, a 2-3 tree might be shorter than the shortest possible binary search tree. Maintaining the balance of a 2-3 tree is relatively simple than maintaining the balance of a binary search tree .

Consider the two trees contain the same data items. 50 60 30 90 30 70 90 10 50 80 100 40 60 80 100 10 20 20 40 70 A balanced binary search tree A 2-3 tree

Inserting into a 2-3 Tree Perform a sequence of insertions on a 2-3 tree is more easilier to maintain the balance than in binary search tree. Example:

60 90 30 30 50 80 100 20 40 70 39 38 37 36 35 1) The binary search tree after a sequence of insertions 34

37 50 34 30 35 39 70 90 36 38 40 60 80 100 10 20 2) The 2-3 tree after the same insertions.

Inserting into a 2-3 Tree (cont.) Insert 39. The search for 39 terminates at the leaf <40>. Since this node contains only one item, can siply inser the new item into this node 50 70 90 30 39 40 60 80 100 10 20

Inserting into a 2-3 Tree (cont.) Insert 38: The search terminates at <39 40>. Since a node cannot have three values, we divide these three values into smallest(38), middle(39), and largest(40) values. Now, we move the (39) up to the node’s parent. 30 39 38 40 10 20

Inserting into a 2-3 Tree (cont.) Insert 37: It’s easy since 37 belongs in a leaf that currently contains only one values, 38. 30 39 40 10 20 37 38

The Insertion Algorithm To insert an item I into a 2-3 tree, first locate the leaf at which the search for I would terminate. Insert the new item I into the leaf. If the leaf now contains only two items, you are done. If the leaf contains three items, you must split it.

The Insertion Algorithm (cont.) Spliting a leaf a) P M P S L S M L b) P P M S M L S L

Deleting from a 2-3 Tree The deletion strategy for a 2-3 tree is the inverse of its insertion strategy. Just as a 2-3 tree spreads insertions throughout the tree by splitting nodes when they become too full, it spreads deletions throughout the tree by merging nodes when they become empty. Example:

Deleting from a 2-3 Tree (cont.) Delete 70 80 90 80 90 60 100 60 - 100 70 Swap with inorder successor Delete value from leaf 90 80 90 100 60 100 60 80 Merge nodes by deleting empty leaf and moving 80 down

Deleting from 2-3 Tree (cont.) Delete 70 50 90 30 100 40 60 80 10 20

Deleting from 2-3 Tree (cont.) Delete 100 80 90 90 -- 60 80 60 90 60 80 60 80 Delete value from leaf Doesn’t work Redistribute