Dictionaries1 © 2010 Goodrich, Tamassia 13457 8 8 91114161819 1 3 3 457891114161819 134 5 5 7891114161819 1345 7 7 891114161819 0 0 0 0 m l h m l h m l.

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.
9.3 The Dictionary ADT    … 01/25/98, Taipei, … 03/04/98, Yunlin, … 02/15/98, Douliou, … 01/20/98,
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.
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)
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.
CSC401 – Analysis of Algorithms Lecture Notes 6 Dictionaries and Search Trees Objectives: Introduce dictionaries and its diverse implementations Introduce.
Hash Tables1   © 2010 Goodrich, Tamassia.
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 Binary Search Trees1 CSC 212 Lecture 18: Binary and AVL Trees.
© 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,
1 i206: Lecture 12: Hash Tables (Dictionaries); Intro to Recursion Marti Hearst Spring 2012.
1 Binary Search Trees   . 2 Ordered Dictionaries Keys are assumed to come from a total order. New operations: closestKeyBefore(k) closestElemBefore(k)
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,
© 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.
Maps 1/28/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,
Binary Search Trees < > = © 2010 Goodrich, Tamassia
Binary Search Trees < > =
Hash Tables 6/13/2018 Presentation for use with the textbook Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015 Cuckoo Hashing.
Binary Search Trees (10.1) CSE 2011 Winter August 2018.
Binary Search Trees < > = Binary Search Trees
Hash Tables 3/25/15 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M.
Dictionaries < > = Dictionaries Dictionaries
Binary Search Trees (10.1) CSE 2011 Winter November 2018.
Data Structures Maps and Hash.
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 and Hash Tables
Presentation transcript:

Dictionaries1 © 2010 Goodrich, Tamassia m l h m l h m l h

Dictionaries2 Dictionary ADT  The dictionary ADT models a searchable collection of key- element entries  The main operations of a dictionary are searching, inserting, and deleting items  Multiple items with the same key are allowed  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: get(k): if the dictionary has an entry with key k, returns it, else, returns null getAll(k): returns an iterable collection of all entries with key k put(k, o): inserts and returns the entry (k, o) remove(e): remove the entry e from the dictionary entrySet(): returns an iterable collection of the entries in the dictionary size(), isEmpty() © 2010 Goodrich, Tamassia

Dictionaries3 Example OperationOutputDictionary put(5,A)(5,A)(5,A) put(7,B)(7,B)(5,A),(7,B) put(2,C)(2,C)(5,A),(7,B),(2,C) put(8,D)(8,D)(5,A),(7,B),(2,C),(8,D) put(2,E)(2,E)(5,A),(7,B),(2,C),(8,D),(2,E) get(7)(7,B)(5,A),(7,B),(2,C),(8,D),(2,E) get(4)null(5,A),(7,B),(2,C),(8,D),(2,E) get(2)(2,C)(5,A),(7,B),(2,C),(8,D),(2,E) getAll(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(get(5))(5,A)(7,B),(2,C),(8,D),(2,E) get(5)null(7,B),(2,C),(8,D),(2,E) © 2010 Goodrich, Tamassia

Dictionaries4 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: put takes O(1) time since we can insert the new item at the beginning or at the end of the sequence get 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) © 2010 Goodrich, Tamassia

Dictionaries5 The getAll and put Algorithms Algorithm getAll(k) Create an initially-empty list L for e: D do if e.getKey() = k then L.addLast(e) return L Algorithm put(k,v) Create a new entry e = (k,v) S.addLast(e){S is unordered} return e © 2010 Goodrich, Tamassia

Dictionaries6 The remove Algorithm Algorithm remove(e): { We don’t assume here that e stores its position in S } B = S.positions() while B.hasNext() do p = B.next() if p.element() = e then S.remove(p) return e return null {there is no entry e in D} © 2010 Goodrich, Tamassia

Dictionaries7 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. © 2010 Goodrich, Tamassia

Dictionaries8 Search Table  A search table is a dictionary implemented by means of a sorted array We store the items of the dictionary in an array-based sequence, sorted by key We use an external comparator for the keys  Performance: get takes O(log n) time, using binary search put takes O(n) time since in the worst case we have to shift n  2 items to make room for the new item remove takes O(n) time since in the worst case we have to shift n  2 items to compact the items after the removal  A search table is effective only for dictionaries of small size or for dictionaries on which searches are the most common operations, while insertions and removals are rarely performed (e.g., credit card authorizations) © 2010 Goodrich, Tamassia

Dictionaries9 Binary Search  Binary search performs operation get(k) on a dictionary implemented by means of an array-based sequence, sorted by key similar to the high-low game at each step, the number of candidate items is halved terminates after a logarithmic number of steps  Example: get(7) m l h m l h m l h l  m  h © 2010 Goodrich, Tamassia