1 / 8

CS261 Data Structures

CS261 Data Structures. Maps (or Dictionaries). Goals. Introduce the Map(or Dictionary) ADT Introduce an implementation of the map with a Dynamic Array. So Far…. Emphasis on values themselves e.g. store names in an AVL tree to quickly lookup club members

manning
Download Presentation

CS261 Data Structures

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS261 Data Structures Maps (or Dictionaries)

  2. Goals • Introduce the Map(or Dictionary) ADT • Introduce an implementation of the map with a Dynamic Array

  3. So Far…. • Emphasis on values themselves • e.g. store names in an AVL tree to quickly lookup club members • e.g. store numbers in an AVL tree for a tree sort • Often, however, we want to associate something else (ie. a value) with the lookup value (ie. a key) • e.g. phonebook, dictionary, student roster, etc.

  4. Map or Dictionary ADT • A Map stores not just values, but Key-Value pairs • void put (KT key , VT value) • VT get (KT key) • intcontainsKey(KT key) • void removeKey (KT key) • Struct Association { • KT key; • VT value; • }; All comparisons done on the key All returned values are VT Can implement with AVLTree, HashTable, DynArr, etc.

  5. Dynamic Array Map: put void putDynArrayDictionary (structdyArray *data, KEYTYPE key, VALUETYPE val, comparator compareKey) { struct association * ap; if (containsKeyDynArrayDictionary(vec, key, compareKey)) removeKeyDynArrayDictionary (vec, key, compareKey); ap = (struct association *) malloc(sizeof(struct association)); assert(ap != 0); ap->key = key; ap->value = val; addDynArray(vec, ap); }

  6. Dynamic Array Map: Contains intcontainsMap (DynArr *v, KT key, comparator compare){ int i = 0; for (i = 0; i < v->size; i++) { if ((*compare)(((struct association *)(v->data[i]))->key, key) == 0 ) /* found it */ return 1; } return 0; }

  7. Map or Dictionary • A Map stores not just values, but Key-Value pairs • Example Application: Concordance • Count the number of times each word appears in a selection of text • Keys: unique words form the text • Value: count of each word

  8. Your Turn – Worksheet 36: Dynamic Array Implementation of the Map • Internally, store Struct Associations • Put • Ensure that each element in the dictionary has a unique key • ContainsKey • Loop until you find the ‘key’ and then return true, else false • Get • Loop until you find the ‘key’ then return the value • RemoveKey • Loop until you find the ‘key’, then remove the entire association

More Related