9.3 The Dictionary ADT 1 6 9 2 4 1 8    451-229-0004 981-101-0002 025-612-0001 … 01/25/98, Taipei, … 03/04/98, Yunlin, … 02/15/98, Douliou, … 01/20/98,

Slides:



Advertisements
Similar presentations
© 2004 Goodrich, Tamassia Binary Search Trees
Advertisements

© 2004 Goodrich, Tamassia Hash Tables1  
© 2004 Goodrich, Tamassia Dictionaries   
© 2004 Goodrich, Tamassia Maps1. © 2004 Goodrich, Tamassia Maps2 A map models a searchable collection of key-value entries The main operations of a map.
Chapter 9: Maps, Dictionaries, Hashing Nancy Amato Parasol Lab, Dept. CSE, Texas A&M University Acknowledgement: These slides are adapted from slides provided.
Dictionaries1 © 2010 Goodrich, Tamassia m l h m l h m l.
Maps. Hash Tables. Dictionaries. 2 CPSC 3200 University of Tennessee at Chattanooga – Summer 2013 © 2010 Goodrich, Tamassia.
Data Structures Lecture 12 Fang Yu Department of Management Information Systems National Chengchi University Fall 2010.
TTIT33 Algorithms and Optimization – Lecture 5 Algorithms Jan Maluszynski - HT TTIT33 – Algorithms and optimization Lecture 5 Algorithms ADT Map,
Data Structures Lecture 13 Fang Yu Department of Management Information Systems National Chengchi University Fall 2010.
Maps, Dictionaries, Hashtables
© 2004 Goodrich, Tamassia Dictionaries   
CSC311: Data Structures 1 Chapter 9: Maps and Dictionaries Objectives: Map ADT Hash tables –Hash functions and hash code –Compression functions and collisions.
Dictionaries and Hash Tables1  
© 2004 Goodrich, Tamassia Binary Search Trees   
CSC311: Data Structures 1 Chapter 10: Search Trees Objectives: Binary Search Trees: Search, update, and implementation AVL Trees: Properties and maintenance.
Binary Search Trees1 Part-F1 Binary Search Trees   
© 2004 Goodrich, Tamassia Maps1. © 2004 Goodrich, Tamassia Maps2 A map models a searchable collection of key-value entries The main operations of a map.
CSC 212 – Data Structures Lecture 29: Dictionary ADT.
Binary Search Trees   . 2 Ordered Dictionaries Keys are assumed to come from a total order. New operations: closestKeyBefore(k) closestElemBefore(k)
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.
Data Structures Hash Table (aka Dictionary) i206 Fall 2010 John Chuang Some slides adapted from Marti Hearst, Brian Hayes, Andreas Veneris, Glenn Brookshear,
Maps, Hash Tables and Dictionaries Chapter 10.1, 10.2, 10.3, 10.5.
Maps, Dictionaries, Hashing
CS 221 Analysis of Algorithms Data Structures Dictionaries, Hash Tables, Ordered Dictionary and Binary Search Trees.
CSC 213 – Large Scale Programming Lecture 17: Binary Search Trees.
CSC401 – Analysis of Algorithms Lecture Notes 6 Dictionaries and Search Trees Objectives: Introduce dictionaries and its diverse implementations Introduce.
Hash Tables1   © 2010 Goodrich, Tamassia.
Dictionaries and Hash Tables1 Hash Tables  
LECTURE 36: DICTIONARY CSC 212 – Data Structures.
Maps and Dictionaries Data Structures and Algorithms CS 244 Brent M. Dingle, Ph.D. Department of Mathematics, Statistics, and Computer Science University.
Binary Search Trees (10.1) CSE 2011 Winter November 2015.
© 2004 Goodrich, Tamassia Hash Tables1  
CHAPTER 9 HASH TABLES, MAPS, AND SKIP LISTS ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN C++,
Map ADT by Dr. Bun Yue Professor of Computer Science CSCI 3333 Data Structures.
Maps & dictionaries Go&Ta A map models a searchable collection of key-value entries The main operations of a map are for searching, inserting,
Hash Tables ADT Data Dictionary, with two operations – Insert an item, – Search for (and retrieve) an item How should we implement a data dictionary? –
Searching Tables Table: sequence of (key,information) pairs (key,information) pair is a record key uniquely identifies information, so no duplicate records.
CH 9 : MAPS AND DICTIONARIES 1 ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN C++, GOODRICH, TAMASSIA.
Maps1 © 2010 Goodrich, Tamassia. Maps2  A map models a searchable collection of key-value entries  The main operations of a map are for searching, inserting,
CSC 212 Hash, Dictionaries, and Skip Lists. Announcements Homework #4 due Tuesday  Attending assessment conf. at UB tomorrow (Drew the short straw; New.
© 2004 Goodrich, Tamassia Maps1. © 2004 Goodrich, Tamassia Maps2 A map models a searchable collection of key-value entries The main operations of a map.
© 2004 Goodrich, Tamassia BINARY SEARCH TREES Binary Search Trees   
1 COMP9024: Data Structures and Algorithms Week Eight: Maps and Dictionaries Hui Wu Session 2, 2014
1 COMP9024: Data Structures and Algorithms Week Nine: Maps and Dictionaries Hui Wu Session 1, 2016
1 COMP9024: Data Structures and Algorithms Week Eight: Maps and Dictionaries Hui Wu Session 1, 2014
Lecture14: Hashing Bohyung Han CSE, POSTECH CSED233: Data Structures (2014F)
Algorithms Design Fall 2016 Week 6 Hash Collusion Algorithms and Binary Search Trees.
Binary Search Trees < > = © 2010 Goodrich, Tamassia
Binary Search Trees < > =
Binary Search Trees < > = Binary Search Trees
Dictionaries Dictionaries 07/27/16 16:46 07/27/16 16:46 Hash Tables 
Dictionaries < > = Dictionaries Dictionaries
Binary Search Trees < > = © 2010 Goodrich, Tamassia
Binary Search Trees < > =
Binary Search Trees < > = Binary Search Trees
Dictionaries and Hash Tables
Maps.
Dictionaries < > = /3/2018 8:58 AM Dictionaries
Ordered Maps & Dictionaries
Dictionaries < > = /9/2018 3:06 AM Dictionaries
Dictionaries and Hash Tables
Copyright © Aiman Hanna All rights reserved
"He's off the map!" - Eternal Sunshine of the Spotless Mind
Dictionaries < > = /17/2019 4:20 PM Dictionaries
CH 9 : Maps And Dictionary
CS210- Lecture 17 July 12, 2005 Agenda Collision Handling
Dictionaries < > = Dictionaries Dictionaries
Dictionaries 二○一九年九月二十四日 ADT for Map:
Dictionaries and Hash Tables
Presentation transcript:

9.3 The Dictionary ADT    … 01/25/98, Taipei, … 03/04/98, Yunlin, … 02/15/98, Douliou, … 01/20/98, Douliou, … … Credit Card Authorizations /14/98, Chiayi, …

Dictionary ADT Unlike a map, a dictionary allows multiple entries with the same key The dictionary ADT models a searchable collection of key-element entries The main operations of a dictionary are searching, inserting, and deleting items Applications: – word-definition pairs – credit card authorizations – DNS mapping of host names (e.g., datastructures.net) to internet IP addresses (e.g., ) Dictionary ADT methods: – size(), isEmpty() – find(k): if the dictionary has an entry with key k, returns it, else, returns null – findAll(k): returns an iterator of all entries with key k – insert(k, v): inserts and returns the entry (k, v) – remove(e): remove the entry e from the dictionary – entries(): returns an iterator of the entries in the dictionary 2 Map: (5,A),(7,B),(2,E),(8,D) Dictionary: (5,A),(7,B),(2,C),(8,D),(2,E)

Example OperationOutputDictionary insert(5,A)(5,A)(5,A) insert(7,B)(7,B)(5,A),(7,B) insert(2,C)(2,C)(5,A),(7,B),(2,C) insert(8,D)(8,D)(5,A),(7,B),(2,C),(8,D) insert(2,E)(2,E)(5,A),(7,B),(2,C),(8,D),(2,E) find(7)(7,B)(5,A),(7,B),(2,C),(8,D),(2,E) find(4)null(5,A),(7,B),(2,C),(8,D),(2,E) find(2)(2,C)(5,A),(7,B),(2,C),(8,D),(2,E) findAll(2)(2,C),(2,E)(5,A),(7,B),(2,C),(8,D),(2,E) size()5(5,A),(7,B),(2,C),(8,D),(2,E) remove(find(5))(5,A)(7,B),(2,C),(8,D),(2,E) find(5)null(7,B),(2,C),(8,D),(2,E) 3

A List-Based Dictionary 4 FindAll(k) and Insert(k,v) Algorithms

Remove(e) and Entries() Algorithms 5

A List-Based Dictionary A log file or audit trail is a dictionary implemented by means of an unsorted sequence – We store the items of the dictionary in a sequence (based on a doubly-linked list or array), in arbitrary order Performance: – insert takes O(1) time since we can insert the new item at the beginning or at the end of the sequence – find and remove take O(n) time since in the worst case (the item is not found) we traverse the entire sequence to look for an item with the given key The log file is effective only for dictionaries of small size or for dictionaries on which insertions are the most common operations, while searches and removals are rarely performed (e.g., historical record of logins to a workstation) 6

Hash Table Implementation We can also create a hash-table dictionary implementation. If we use separate chaining to handle collisions, then each operation can be delegated to a list-based dictionary stored at each hash table cell. 7

8

Ordered Search Tables and Binary Search 9 Implement a dictionary by an ordered search table Implemented by A doubly-linked list Hash table with separate chaining Ordered search table

Binary Search in an Ordered Array List 10 at each step, the number of candidate items is halved terminates after a logarithmic number of steps

Binary Search in an Ordered Array List 11

Comparing Dictionary Implementations 12 s: the size of collection returned by findAll