# A Comparison of Dictionary Implementations

Save this PDF as:

Size: px
Start display at page:

## Transcription

1 A Comparison of Dictionary Implementations Mark P Neyer April 10, Introduction A common problem in computer science is the representation of a mapping between two sets. A mapping f : A B is a function taking as input a member a A, and returning b, an element of B. A mapping is also sometimes referred to as a dictionary, because dictionaries map words to their definitions. Knuth [?] explores the map / dictionary problem in Volume 3, Chapter 6 of his book The Art of Computer Programming. He calls it the problem of searching, and presents several solutions. This paper explores implementations of several different solutions to the map / dictionary problem: hash tables, Red-Black Trees, AVL Trees, and Skip Lists. This paper is inspired by the author s experience in industry, where a dictionary structure was often needed, but the natural C# hash table-implemented dictionary was taking up too much space in memory. The goal of this paper is to determine what data structure gives the best performance, in terms of both memory and processing time. AVL and Red-Black Trees were chosen because Pfaff [?] has shown that they are the ideal balanced trees to use. Pfaff did not compare hash tables, however. Also considered for this project were Splay Trees [?]. 2 Background 2.1 The Dictionary Problem A dictionary is a mapping between two sets of items, K, and V. It must support the following operations: 1. Insert an item v for a given key k. If key k already exists in the dictionary, its item is updated to be v. 2. Retrieve a value v for a given key k. 3. Remove a given k and its value from the Dictionary. 2.2 AVL Trees The AVL Tree was invented by G.M. Adel son-vel skiĭ and E. M. Landis, two Soviet Mathematicians, in 1962 [?]. It is a self-balancing binary search tree data structure. Each node has a balance factor, which is the height of its right subtree minus the height of its left subtree. A node with a balance factor of -1,0, or 1 is considered balanced. Nodes with different balance factors are considered unbalanced, and after different operations on the tree, must be rebalanced. 1. Insert Inserting a value into an AVL tree often requires a tree search for the appropriate location. The tree must often be re-balanced after insertion. The re-balancing algorithm rotates branches of the tree to ensure that the balance factors are kept in the range [-1,1]. Both the re-balancing algorithm and the binary search take O(log n) time. 1

2 2. Retrieve Retrieving a key from an AVL tree is performed with a tree search. This takes O(log n) time. 3. Remove Just like an insertion, a removal from an AVL tree requires the tree to be re-balanced. This operation also takes O(log n) time. 2.3 Red-Black Trees The Red-Black Tree was invented by Rudolf Bayer in 1972 [?]. He originally called them Symmetric Binary B-Trees, but they were renamed Red-Black Trees by Leonidas J. Guibas and Robert Sedgewick in 1978 [?]. Red-Black trees have nodes with different colors, which are used to keep the tree balanced. The colors of the nodes follow the following rules: 1. Each node has two children. Each child is either red or black. 2. The root of the tree is black 3. Every leaf node is colored black. 4. Every red node has both of its children colored black. 5. Each path from root to leaf has the same number of black nodes. Like an AVL tree, the Red-Black tree must be balanced after insertions and removals. The Red-Black tree does not need to be updated as frequently, however. The decreased frequency of updates comes at a price: maintenance of a Red-Black tree is more complicated than the maintenance of the AVL tree. 1. Insert Like an AVL Tree, inserting a value into a Red-Black tree is done with a binary search, followed by a possible re-balancing. Like the AVL tree, the re-balancing algorithm for the Red-Black tree rotates branches of the tree to ensure that some constraints are met. The difference is that the Red-Black Tree s re-balancing algorithm is more complicated. The search and re-balancing both run in O(log n) time. 2. Retrieve Retrieving a key from a Red-Black tree is performed with a binary search. This takes O(log n) time. 3. Remove Just like an insertion, a removal from a Red-Black tree requires the tree to be re-balanced. The search for the key to be removed, along with the re-balancing, takes O(log n) time. 2.4 Skip Lists Skip Lists are yet another structure designed to store dictionaries. The skip list was invented by William Pugh in 1991 [?]. A skip list consists of parallel sorted linked lists. The bottom list contains all of the elements. The next list up is build randomly: For each element, a coin is flipped, and if the element passes the coin flip, it is inserted into the next level. The next list up contains the elements which passed two coin flips, and so forth. The skip list requires little maintenance. 1. Insert Insertion into a skip list is done by searching the list for the appropriate location, and then adding the element to the linked list. There is no re-balancing that must be done, but because a search must be performed, the running time of insertions is the same as the running time for searches : O(log n). 2. Retrieve Retrieving a key from a Red-Black tree is performed with a special search, which first traverses the highest list, until an element higher than the search target is found. The search goes back one element of the highest list, then goes down one level and continues. This process goes on until the bottom list is found, and the element is either located or it is found that the element is not part of the list. how long does this search take? Pugh showed that it takes, on average, O(log n) time. 2

4 their size was computed based upon memory used when no instance of the Hashtable class were created for the experiment. This baseline memory usage was then subtracted from all future measurements of memory usage. The experimental data is presented both as it was gathered, as well as in a processed form to account for the existing hash tables. 4 Results Table?? compares the memory consumption of the different implementations of dictionaries. For all but the most trivial of dictionaries, the hash table outperforms AVL and Red-Black Trees, but loses to the Skip List. Table?? compares the time it took to create thedifferent dictionary implementations. The AVL tree is the clear loser, while Red-Black Trees, Hash tables, and Skip Lists all appear to take roughly the same amount of time. Table?? compares lookup time in the different structures. Once again, Hash Tables are the superior choice in terms of fast lookup time, with skip lists coming in second and red-black trees a close third. The clear loser is, again, the AVL tree. 5 Conclusion It is very clear now that, for random access dictionaries, hash tables are superior to both trees and skip lists. The primary advantage of the later group of data structures is that an they allow for sorted access to data. A hash table s speed, on the other hand, depends upon its ability to store the elements randomly, i.e. with no relation to the relative values of the keys. Among trees, it is clear that a Red-Black tree is superior to an AVL tree. The Red-Black tree allows itself to be more unbalanced than an AVL tree, and, as a result, does not need to be re-balanced as frequently. A Skip list, however, appears to be a better choice than either of these two trees. Its memory footprint is smaller than any of the other structures, and in construction time it is comparable to a Hash table. For random queries, it performs about as well as the Red-Black tree. 6 Bibliogrpahy References [1] G.M. Adel son-vel skiĭ and E. M. Landis. An algorithm for the organization of information. Soviet Mathematics Doklady, 3: , [2] R. Bayer. Symmetric binary b-trees: Data structures and maintenance algorithms. Acta Informat., 1: , [3] L. J. Guibas and R Sedgewick. A dichromatic framework for balanced trees. IEEE Symposium on Foundations of Computer Science, pages 8 21, [4] Donald Knuth. The Art of Computer Programming, volume 3. Addison-Wesley Publishing Co., Philippines, [5] Ben Pfaff. Performance analysis of BSTs in system software. In SIGMETRICS 04/Performance 04: Proceedings of the joint international conference on Measurement and modeling of computer systems, pages , New York, NY, USA, ACM. [6] William Pugh. Skip lists: a probabilistic alternative to balanced trees. Commun. ACM, 33(6): , [7] Daniel Dominic Sleator and Robert Endre Tarjan. Self-adjusting binary search trees. J. ACM, 32(3): , Data 4

5 Number of Entries Hash Table AVL Tree Red-Black Tree Skip List Table 1: Dictionary Memory Size In Bytes Number of Entries Hash Table AVL Tree Red-Black Tree Skip-list Table 2: Dictionary Creation Time In Milliseconds 5

6 Number of Entries Hash Table AVL Tree Red-Black Tree Skip List Table 3: Dictionary Lookup Speed In Milliseconds Size of Number of Number of Size of Average Size of Corrected Size of Total Size (Bytes) Table Tables Bucket Arrays Bucket Arrays Bucket Arrays Bucket Arrays Table 4: Hash Tables: Memory Size in Bytes 6

7 7

### S. Muthusundari. Research Scholar, Dept of CSE, Sathyabama University Chennai, India e-mail: nellailath@yahoo.co.in. Dr. R. M.

A Sorting based Algorithm for the Construction of Balanced Search Tree Automatically for smaller elements and with minimum of one Rotation for Greater Elements from BST S. Muthusundari Research Scholar,

### Outline BST Operations Worst case Average case Balancing AVL Red-black B-trees. Binary Search Trees. Lecturer: Georgy Gimel farb

Binary Search Trees Lecturer: Georgy Gimel farb COMPSCI 220 Algorithms and Data Structures 1 / 27 1 Properties of Binary Search Trees 2 Basic BST operations The worst-case time complexity of BST operations

### Introduction Advantages and Disadvantages Algorithm TIME COMPLEXITY. Splay Tree. Cheruku Ravi Teja. November 14, 2011

November 14, 2011 1 Real Time Applications 2 3 Results of 4 Real Time Applications Splay trees are self branching binary search tree which has the property of reaccessing the elements quickly that which

### In our lecture about Binary Search Trees (BST) we have seen that the operations of searching for and inserting an element in a BST can be of the

In our lecture about Binary Search Trees (BST) we have seen that the operations of searching for and inserting an element in a BST can be of the order O(log n) (in the best case) and of the order O(n)

### BINARY SEARCH TREE PERFORMANCE

BINARY SEARCH TREE PERFORMANCE Operation Best Time Average Time Worst Time (on a tree of n nodes) Find Insert Delete O(lg n)?? O(lg n)?? O(n) Fastest Running Time The find, insert and delete algorithms

### A Hybrid Chaining Model with AVL and Binary Search Tree to Enhance Search Speed in Hashing

, pp.185-194 http://dx.doi.org/10.14257/ijhit.2015.8.3.18 A Hybrid Chaining Model with AVL and Binary Search Tree to Enhance Search Speed in Hashing 1 Akshay Saxena, 2 Harsh Anand, 3 Tribikram Pradhan

### From Last Time: Remove (Delete) Operation

CSE 32 Lecture : More on Search Trees Today s Topics: Lazy Operations Run Time Analysis of Binary Search Tree Operations Balanced Search Trees AVL Trees and Rotations Covered in Chapter of the text From

### AVL Trees. CSE 373 Data Structures

AVL Trees CSE 373 Data Structures Readings Reading Chapter 1 Section 1.2 AVL Trees 2 Binary Search Tree - Best Time All BST operations are O(d), where d is tree depth minimum d is = log N for a binary

### Persistent Binary Search Trees

Persistent Binary Search Trees Datastructures, UvA. May 30, 2008 0440949, Andreas van Cranenburgh Abstract A persistent binary tree allows access to all previous versions of the tree. This paper presents

### A Study on Skip Lists, Jump Lists and Random Binary. Search Trees. (Kuan-Chien Wang) (Prof. Wei-Mei Chen)

A Study on Skip Lists, Jump Lists and Random Binary Search Trees (Kuan-Chien Wang) (Prof. Wei-Mei Chen) Thesis for Master of Science Department of Applied Mathematics Tatung University July 2004 kevin_9999@hotmail.com

### Balanced Binary Trees

Reminders about Trees Balanced Binary Trees With pictures by John Morris (ciips.ee.uwa.edu.au/~morris) A binary tree is a tree with exactly two sub-trees for each node, called the left and right sub-trees.

### CS 210 Algorithms and Data Structures College of Information Technology and Engineering Weisberg Division of Engineering and Computer Science

CS 210 Algorithms and Data Structures College of Information Technology and Engineering Weisberg Division of Engineering and Computer Science Semester and Year: Spring 2009 Classroom Section, Meeting Times,

### Lecture 6. Randomized data structures Random number generation Skip lists: ideas and implementation Skip list time costs. Reading:

Lecture 6 Randomized data structures Random number generation Skip lists: ideas and implementation Skip list time costs Reading: Skip Lists: A Probabilistic Alternative to Balanced Trees (author William

### Announcements. CSE332: Data Abstractions. Lecture 9: B Trees. Today. Our goal. M-ary Search Tree. M-ary Search Tree. Ruth Anderson Winter 2011

Announcements CSE2: Data Abstractions Project 2 posted! Partner selection due by 11pm Tues 1/25 at the latest. Homework due Friday Jan 28 st at the BEGINNING of lecture Lecture 9: B Trees Ruth Anderson

### Efficient representation of integer sets

Efficient representation of integer sets Marco Almeida Rogério Reis Technical Report Series: DCC-2006-06 Version 1.0 Departamento de Ciência de Computadores & Laboratório de Inteligência Artificial e Ciência

### Binary Search Trees. Robert E. Tarjan Princeton University & Intertrust Technologies. Heidelberg Laureate Forum September 23, 2016

Binary Search Trees Robert E. Tarjan Princeton University & Intertrust Technologies Heidelberg Laureate Forum September 23, 206 ObservaIons Over the last 50+ years, computer scienists have developed many

### Unit 6: Binary Trees Part 2. Deletion. Deletion by merging. Deletion by merging Deletion by copying. Engineering 4892: Data Structures.

Unit : Binary Trees Part 2 Engineering 92: Data Structures Faculty of Engineering & Applied Science Memorial University of Newfoundland 1 Deletion Deletion by copying 1 Balanced trees AVL trees July 11,

### TREE BASIC TERMINOLOGIES

TREE Trees are very flexible, versatile and powerful non-liner data structure that can be used to represent data items possessing hierarchical relationship between the grand father and his children and

### A Fast Method For Accessing Nodes In The Binary Search Trees

A Fast Method For Accessing Nodes In The Binary Search Trees İbrahim Ates, Mustafa Akpınar, Beyza Eken, Nejat YUMUSAK Sakarya University, Department of Computer Engineering, Serdivan-Sakarya, Turkey ibrahimates@yahoo.com

### ! Insert a value with specified key. ! Search for value given key. ! Delete value with given key. ! O(log N) time per op.

Symbol Table Review 4.4 Balanced Trees Symbol table: key-value pair abstraction.! a value with specified key.! for value given key.! value with given key. Randomized BST.! O(log ) time per op. unless you

### CSE 326, Data Structures. Sample Final Exam. Problem Max Points Score 1 14 (2x7) 2 18 (3x6) 3 4 4 7 5 9 6 16 7 8 8 4 9 8 10 4 Total 92.

Name: Email ID: CSE 326, Data Structures Section: Sample Final Exam Instructions: The exam is closed book, closed notes. Unless otherwise stated, N denotes the number of elements in the data structure

### Binary Search Trees. Data in each node. Larger than the data in its left child Smaller than the data in its right child

Binary Search Trees Data in each node Larger than the data in its left child Smaller than the data in its right child FIGURE 11-6 Arbitrary binary tree FIGURE 11-7 Binary search tree Data Structures Using

### Previous Lectures. B-Trees. External storage. Two types of memory. B-trees. Main principles

B-Trees Algorithms and data structures for external memory as opposed to the main memory B-Trees Previous Lectures Height balanced binary search trees: AVL trees, red-black trees. Multiway search trees:

### Binary Heap Algorithms

CS Data Structures and Algorithms Lecture Slides Wednesday, April 5, 2009 Glenn G. Chappell Department of Computer Science University of Alaska Fairbanks CHAPPELLG@member.ams.org 2005 2009 Glenn G. Chappell

### Balanced Trees Part One

Balanced Trees Part One Balanced Trees Balanced trees are surprisingly versatile data structures. Many programming languages ship with a balanced tree library. C++: std::map / std::set Java: TreeMap /

### Sorting revisited. Build the binary search tree: O(n^2) Traverse the binary tree: O(n) Total: O(n^2) + O(n) = O(n^2)

Sorting revisited How did we use a binary search tree to sort an array of elements? Tree Sort Algorithm Given: An array of elements to sort 1. Build a binary search tree out of the elements 2. Traverse

### An Evaluation of Self-adjusting Binary Search Tree Techniques

SOFTWARE PRACTICE AND EXPERIENCE, VOL. 23(4), 369 382 (APRIL 1993) An Evaluation of Self-adjusting Binary Search Tree Techniques jim bell and gopal gupta Department of Computer Science, James Cook University,

### Fast Sequential Summation Algorithms Using Augmented Data Structures

Fast Sequential Summation Algorithms Using Augmented Data Structures Vadim Stadnik vadim.stadnik@gmail.com Abstract This paper provides an introduction to the design of augmented data structures that offer

### - Easy to insert & delete in O(1) time - Don t need to estimate total memory needed. - Hard to search in less than O(n) time

Skip Lists CMSC 420 Linked Lists Benefits & Drawbacks Benefits: - Easy to insert & delete in O(1) time - Don t need to estimate total memory needed Drawbacks: - Hard to search in less than O(n) time (binary

### DATABASE DESIGN - 1DL400

DATABASE DESIGN - 1DL400 Spring 2015 A course on modern database systems!! http://www.it.uu.se/research/group/udbl/kurser/dbii_vt15/ Kjell Orsborn! Uppsala Database Laboratory! Department of Information

### Balanced search trees

Lecture 8 Balanced search trees 8.1 Overview In this lecture we discuss search trees as a method for storing data in a way that supports fast insert, lookup, and delete operations. (Data structures handling

### Symbol Tables. IE 496 Lecture 13

Symbol Tables IE 496 Lecture 13 Reading for This Lecture Horowitz and Sahni, Chapter 2 Symbol Tables and Dictionaries A symbol table is a data structure for storing a list of items, each with a key and

### Binary Search Trees > = Binary Search Trees 1. 2004 Goodrich, Tamassia

Binary Search Trees < 6 2 > = 1 4 8 9 Binary Search Trees 1 Binary Search Trees A binary search tree is a binary tree storing keyvalue entries at its internal nodes and satisfying the following property:

### Heap. Binary Search Tree. Heaps VS BSTs. < el el. Difference between a heap and a BST:

Heaps VS BSTs Difference between a heap and a BST: Heap el Binary Search Tree el el el < el el Perfectly balanced at all times Immediate access to maximal element Easy to code Does not provide efficient

### CS 2112 Spring 2014. 0 Instructions. Assignment 3 Data Structures and Web Filtering. 0.1 Grading. 0.2 Partners. 0.3 Restrictions

CS 2112 Spring 2014 Assignment 3 Data Structures and Web Filtering Due: March 4, 2014 11:59 PM Implementing spam blacklists and web filters requires matching candidate domain names and URLs very rapidly

### Assignment 3 (concept) Solutions

CS10b Data Structures and Algorithms Assignment 3 (concept) Solutions Due: Friday, February 18th 1. (0%) Consider the following algorithm: Algorithm Power(x, n) Input: A number x and integer n 0 Output:

### DNS LOOKUP SYSTEM DATA STRUCTURES AND ALGORITHMS PROJECT REPORT

DNS LOOKUP SYSTEM DATA STRUCTURES AND ALGORITHMS PROJECT REPORT By GROUP Avadhut Gurjar Mohsin Patel Shraddha Pandhe Page 1 Contents 1. Introduction... 3 2. DNS Recursive Query Mechanism:...5 2.1. Client

### CSE 326: Data Structures B-Trees and B+ Trees

Announcements (4//08) CSE 26: Data Structures B-Trees and B+ Trees Brian Curless Spring 2008 Midterm on Friday Special office hour: 4:-5: Thursday in Jaech Gallery (6 th floor of CSE building) This is

### B-Trees. Algorithms and data structures for external memory as opposed to the main memory B-Trees. B -trees

B-Trees Algorithms and data structures for external memory as opposed to the main memory B-Trees Previous Lectures Height balanced binary search trees: AVL trees, red-black trees. Multiway search trees:

### Lecture 6: Binary Search Trees CSCI 700 - Algorithms I. Andrew Rosenberg

Lecture 6: Binary Search Trees CSCI 700 - Algorithms I Andrew Rosenberg Last Time Linear Time Sorting Counting Sort Radix Sort Bucket Sort Today Binary Search Trees Data Structures Data structure is a

### Balanced Binary Search Tree

AVL Trees / Slide 1 Balanced Binary Search Tree Worst case height of binary search tree: N-1 Insertion, deletion can be O(N) in the worst case We want a tree with small height Height of a binary tree with

### Relational Database Systems 2 4. Trees & Advanced Indexes

Relational Database Systems 2 4. Trees & Advanced Indexes Christoph Lofi Benjamin Köhncke Institut für Informationssysteme Technische Universität Braunschweig http://www.ifis.cs.tu-bs.de 2 Storage Buffer

### Krishna Institute of Engineering & Technology, Ghaziabad Department of Computer Application MCA-213 : DATA STRUCTURES USING C

Tutorial#1 Q 1:- Explain the terms data, elementary item, entity, primary key, domain, attribute and information? Also give examples in support of your answer? Q 2:- What is a Data Type? Differentiate

### International Journal of Software and Web Sciences (IJSWS) www.iasir.net

International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research) ISSN (Print): 2279-0063 ISSN (Online): 2279-0071 International

### Randomized Splay Trees: Theoretical and Experimental Results

Randomized Splay Trees: Theoretical and Experimental Results Susanne lbers Marek Karpinski bstract Splay trees are self-organizing binary search trees that were introduced by Sleator and Tarjan [2]. In

### Searching and Search Trees II

Data structures and algorithms Part 9 Searching and Search Trees II Petr Felkel 10.12. 2007 Topics Red-Black tree Insert Delete B-Tree Motivation Search Insert Delete Based on: [Cormen, Leiserson, Rivest:

### 11 Finger Search Trees

11 Finger Search Trees Gerth Stølting Brodal University of Aarhus 11.1 Finger Searching... 11-1 11.2 Dynamic Finger Search Trees... 11-2 11.3 Level Linked (2,4)-Trees... 11-3 11.4 Randomized Finger Search

### Database 2 Lecture II. Alessandro Artale

Free University of Bolzano Database 2. Lecture II, 2003/2004 A.Artale (1) Database 2 Lecture II Alessandro Artale Faculty of Computer Science Free University of Bolzano Room: 221 artale@inf.unibz.it http://www.inf.unibz.it/

### CSC 421: Algorithm Design Analysis. Spring 2014

CSC 421: Algorithm esign Analysis Spring 2014 Transform & conquer transform-and-conquer approach presorting balanced search trees, heaps Horner's Rule problem reduction 1 Transform & conquer the idea behind

### Binary Heaps * * * * * * * / / \ / \ / \ / \ / \ * * * * * * * * * * * / / \ / \ / / \ / \ * * * * * * * * * *

Binary Heaps A binary heap is another data structure. It implements a priority queue. Priority Queue has the following operations: isempty add (with priority) remove (highest priority) peek (at highest

### IMPLEMENTING CLASSIFICATION FOR INDIAN STOCK MARKET USING CART ALGORITHM WITH B+ TREE

P 0Tis International Journal of Scientific Engineering and Applied Science (IJSEAS) Volume-2, Issue-, January 206 IMPLEMENTING CLASSIFICATION FOR INDIAN STOCK MARKET USING CART ALGORITHM WITH B+ TREE Kalpna

### A Randomized Self-Adjusting Binary Search Tree

A Randomized Self-Adjusting Binary Search Tree Mayur Patel VFX Department Supervisor Animal Logic Film patelm@acm.org We present algorithms for a new self-adjusting binary search tree, which we call a

### Comparing Leaf and Root Insertion

30 Research Article SACJ, No. 44., December 2009 Comparing Leaf Root Insertion Jaco Geldenhuys, Brink van der Merwe Computer Science Division, Department of Mathematical Sciences, Stellenbosch University,

### Big Data and Scripting. Part 4: Memory Hierarchies

1, Big Data and Scripting Part 4: Memory Hierarchies 2, Model and Definitions memory size: M machine words total storage (on disk) of N elements (N is very large) disk size unlimited (for our considerations)

### Structure for String Keys

Burst Tries: A Fast, Efficient Data Structure for String Keys Steen Heinz Justin Zobel Hugh E. Williams School of Computer Science and Information Technology, RMIT University Presented by Margot Schips

### Query Processing, optimization, and indexing techniques

Query Processing, optimization, and indexing techniques What s s this tutorial about? From here: SELECT C.name AS Course, count(s.students) AS Cnt FROM courses C, subscription S WHERE C.lecturer = Calders

### Tables so far. set() get() delete() BST Average O(lg n) O(lg n) O(lg n) Worst O(n) O(n) O(n) RB Tree Average O(lg n) O(lg n) O(lg n)

Hash Tables Tables so far set() get() delete() BST Average O(lg n) O(lg n) O(lg n) Worst O(n) O(n) O(n) RB Tree Average O(lg n) O(lg n) O(lg n) Worst O(lg n) O(lg n) O(lg n) Table naïve array implementation

### Department of Computer Science, University of Agriculture, Abeokuta, Nigeria

The Usefulness of Multilevel Hash Tables with Multiple Hash Functions in Large Databases A.T. Akinwale and F.T. Ibharalu Department of Computer Science, University of Agriculture, Abeokuta, Nigeria atakinwale@yahoo.com

### 2 Exercises and Solutions

2 Exercises and Solutions Most of the exercises below have solutions but you should try first to solve them. Each subsection with solutions is after the corresponding subsection with exercises. 2.1 Sorting

### CSCI Trees. Mark Redekopp David Kempe

1 CSCI 104 2-3 Trees Mark Redekopp David Kempe 2 Properties, Insertion and Removal BINARY SEARCH TREES 3 Binary Search Tree Binary search tree = binary tree where all nodes meet the property that: All

### Multi-Way Search Trees (B Trees)

Multi-Way Search Trees (B Trees) Multiway Search Trees An m-way search tree is a tree in which, for some integer m called the order of the tree, each node has at most m children. If n

### Analysis of Algorithms I: Binary Search Trees

Analysis of Algorithms I: Binary Search Trees Xi Chen Columbia University Hash table: A data structure that maintains a subset of keys from a universe set U = {0, 1,..., p 1} and supports all three dictionary

### Heaps & Priority Queues in the C++ STL 2-3 Trees

Heaps & Priority Queues in the C++ STL 2-3 Trees CS 3 Data Structures and Algorithms Lecture Slides Friday, April 7, 2009 Glenn G. Chappell Department of Computer Science University of Alaska Fairbanks

### Binary Search Trees. A Generic Tree. Binary Trees. Nodes in a binary search tree ( B-S-T) are of the form. P parent. Key. Satellite data L R

Binary Search Trees A Generic Tree Nodes in a binary search tree ( B-S-T) are of the form P parent Key A Satellite data L R B C D E F G H I J The B-S-T has a root node which is the only node whose parent

### Space-Efficient Finger Search on Degree-Balanced Search Trees

Space-Efficient Finger Search on Degree-Balanced Search Trees Guy E. Blelloch Bruce M. Maggs Shan Leung Maverick Woo Computer Science Department, Carnegie Mellon University, Pittsburgh, PA 113 {guyb,bmm,maverick}@cs.cmu.edu

### General Balanced Trees

Journal of Algorithms 30, 118 Ž 1999. Article ID jagm.1998.0967, available online at http:www.idealibrary.com on General Balanced Trees Arne Andersson* Department of Computer Science, Lund Uniersity, Lund

### AS-2261 M.Sc.(First Semester) Examination-2013 Paper -fourth Subject-Data structure with algorithm

AS-2261 M.Sc.(First Semester) Examination-2013 Paper -fourth Subject-Data structure with algorithm Time: Three Hours] [Maximum Marks: 60 Note Attempts all the questions. All carry equal marks Section A

### Physical Data Organization

Physical Data Organization Database design using logical model of the database - appropriate level for users to focus on - user independence from implementation details Performance - other major factor

### Multiway Search Tree (MST)

Multiway Search Tree (MST) Generalization of BSTs Suitable for disk MST of order n: Each node has n or fewer sub-trees S1 S2. Sm, m n Each node has n-1 or fewer keys K1 Κ2 Κm-1 : m-1 keys in ascending

### COT5405 Analysis of Algorithms Homework 3 Solutions

COT0 Analysis of Algorithms Homework 3 Solutions. Prove or give a counter example: (a) In the textbook, we have two routines for graph traversal - DFS(G) and BFS(G,s) - where G is a graph and s is any

### Building optimal binary search trees from sorted values in O(N) time.

Building optimal binary search trees from sorted values in O(N) time. Jean G. Vaucher, professeur titulaire Departement d'informatique et de recherche opérationnelle, Université de Montréal, C.P. 6128,

### B+ Tree Properties B+ Tree Searching B+ Tree Insertion B+ Tree Deletion Static Hashing Extendable Hashing Questions in pass papers

B+ Tree and Hashing B+ Tree Properties B+ Tree Searching B+ Tree Insertion B+ Tree Deletion Static Hashing Extendable Hashing Questions in pass papers B+ Tree Properties Balanced Tree Same height for paths

### Chapter 14 The Binary Search Tree

Chapter 14 The Binary Search Tree In Chapter 5 we discussed the binary search algorithm, which depends on a sorted vector. Although the binary search, being in O(lg(n)), is very efficient, inserting a

### Evaluating Alternative Structures for Prefix Trees

, 22-24 October, 2014, San Francisco, USA Evaluating Alternative Structures for Prefix Trees Feras Hanandeh, Izzat Alsmadi and Muhammad M. Kwafha Abstract Prefix trees or tries are data structures that

### Converting a Number from Decimal to Binary

Converting a Number from Decimal to Binary Convert nonnegative integer in decimal format (base 10) into equivalent binary number (base 2) Rightmost bit of x Remainder of x after division by two Recursive

### Symbol Tables. Introduction

Symbol Tables Introduction A compiler needs to collect and use information about the names appearing in the source program. This information is entered into a data structure called a symbol table. The

### A binary search tree or BST is a binary tree that is either empty or in which the data element of each node has a key, and:

Binary Search Trees 1 The general binary tree shown in the previous chapter is not terribly useful in practice. The chief use of binary trees is for providing rapid access to data (indexing, if you will)

### Suppose you are accessing elements of an array: ... or suppose you are dereferencing pointers:

CSE 100: B-TREE Memory accesses Suppose you are accessing elements of an array: if ( a[i] < a[j] ) {... or suppose you are dereferencing pointers: temp->next->next = elem->prev->prev;... or in general

### Performance Analysis of BSTs in System Software

Performance Analysis of BSTs in System Software Ben Pfaff Stanford University Department of Computer Science blp@cs.stanford.edu Abstract Binary search tree (BST) based data structures, such as AVL trees,

### BM307 File Organization

BM307 File Organization Gazi University Computer Engineering Department 9/24/2014 1 Index Sequential File Organization Binary Search Interpolation Search Self-Organizing Sequential Search Direct File Organization

### Labworks 1: Binary Search Trees and Red-Black trees

Labworks 1: Binary Search Trees and Red-Black trees October 12, 2016 Deadline for these labworks: October 26 2016 How? Make an archive with the source files of your implementation, and send it by email

### Quiz 1 Solutions. (a) T F The height of any binary search tree with n nodes is O(log n). Explain:

Introduction to Algorithms March 9, 2011 Massachusetts Institute of Technology 6.006 Spring 2011 Professors Erik Demaine, Piotr Indyk, and Manolis Kellis Quiz 1 Solutions Problem 1. Quiz 1 Solutions True

### Persistent Data Structures

6.854 Advanced Algorithms Lecture 2: September 9, 2005 Scribes: Sommer Gentry, Eddie Kohler Lecturer: David Karger Persistent Data Structures 2.1 Introduction and motivation So far, we ve seen only ephemeral

### Learning Outcomes. COMP202 Complexity of Algorithms. Binary Search Trees and Other Search Trees

Learning Outcomes COMP202 Complexity of Algorithms Binary Search Trees and Other Search Trees [See relevant sections in chapters 2 and 3 in Goodrich and Tamassia.] At the conclusion of this set of lecture

### 1 2-3 Trees: The Basics

CS10: Data Structures and Object-Oriented Design (Fall 2013) November 1, 2013: 2-3 Trees: Inserting and Deleting Scribes: CS 10 Teaching Team Lecture Summary In this class, we investigated 2-3 Trees in

### Binary Search Trees CMPSC 122

Binary Search Trees CMPSC 122 Note: This notes packet has significant overlap with the first set of trees notes I do in CMPSC 360, but goes into much greater depth on turning BSTs into pseudocode than

### Exam study sheet for CS2711. List of topics

Exam study sheet for CS2711 Here is the list of topics you need to know for the final exam. For each data structure listed below, make sure you can do the following: 1. Give an example of this data structure

### Databases and Information Systems 1 Part 3: Storage Structures and Indices

bases and Information Systems 1 Part 3: Storage Structures and Indices Prof. Dr. Stefan Böttcher Fakultät EIM, Institut für Informatik Universität Paderborn WS 2009 / 2010 Contents: - database buffer -

### DATA STRUCTURES USING C

DATA STRUCTURES USING C QUESTION BANK UNIT I 1. Define data. 2. Define Entity. 3. Define information. 4. Define Array. 5. Define data structure. 6. Give any two applications of data structures. 7. Give

### Data Warehousing und Data Mining

Data Warehousing und Data Mining Multidimensionale Indexstrukturen Ulf Leser Wissensmanagement in der Bioinformatik Content of this Lecture Multidimensional Indexing Grid-Files Kd-trees Ulf Leser: Data

### Review of Hashing: Integer Keys

CSE 326 Lecture 13: Much ado about Hashing Today s munchies to munch on: Review of Hashing Collision Resolution by: Separate Chaining Open Addressing \$ Linear/Quadratic Probing \$ Double Hashing Rehashing

### When to use splay trees

SOFTWARE PRACTICE AND EXPERIENCE Published online in Wiley InterScience (www.interscience.wiley.com)..813 When to use splay trees Eric K. Lee, and Charles U. Martel Department of Computer Science, University

### Randomized Binary Search Trees

CONRADO MARTÍNEZ AND SALVADOR ROURA Universitat Politècnica de Catalunya, Barcelona, Catalonia, Spain Abstract. In this paper, we present randomized algorithms over binary search trees such that: (a) the

### Complexity Attack Resistant Flow Lookup Schemes for IPv6: A Measurement Based Comparison

Complexity Attack Resistant Flow Lookup Schemes for IPv6: A Measurement Based Comparison David Malone and R. Joshua Tobin Abstract In this paper we look at the problem of choosing a good flow state lookup

### root node level: internal node edge leaf node CS@VT Data Structures & Algorithms 2000-2009 McQuain

inary Trees 1 A binary tree is either empty, or it consists of a node called the root together with two binary trees called the left subtree and the right subtree of the root, which are disjoint from each

### Tree Properties (size vs height) Balanced Binary Trees

Tree Properties (size vs height) Balanced Binary Trees Due now: WA 7 (This is the end of the grace period). Note that a grace period takes the place of a late day. Now is the last time you can turn this

### Chapter 7. Multiway Trees. Data Structures and Algorithms in Java

Chapter 7 Multiway Trees Data Structures and Algorithms in Java Objectives Discuss the following topics: The Family of B-Trees Tries Case Study: Spell Checker Data Structures and Algorithms in Java 2 Multiway

### Class 28: Binary Search Trees. Binary Search Trees

Introduction to Computation and Problem Solving Class 2: Binary Search Trees Prof. Steven R. Lerman and Dr. V. Judson Harward Binary Search Trees In the previous lecture, we defined the concept of binary