1 / 9

# Hash Tables - PowerPoint PPT Presentation

Hash Tables. What is a Hash Table?. Container of elements where each element has an associated key Each key is mapped to a value that determines the table cell where element should be placed Mapping is called the hash function. Hash Table Operations. size() isEmpty()

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'Hash Tables' - prem

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### Hash Tables

• Container of elements where each element has an associated key

• Each key is mapped to a value that determines the table cell where element should be placed

• Mapping is called the hash function

• size()

• isEmpty()

• find(k) – find element with key k

• insertItem(k, e) – insert element e with key k

• removeElement(k) – remove element with key k

• elements() – return Iterator of elements

• keys() – return Iterator of keys

key is id number

map id number to array index

Array Implementation

[0]

bob 1234

[1]

[2]

jane 1344

[3]

sally 1354

[4]

[5]

[6]

[7]

[8]

[9]

• Don’t have to perform search to find item

• Complexity of find/remove?

• The hash function has to map the key to a value

• Bad option: add up ASCII values of characters in key and % by number of table elements

• Better option:

for(i=0; i < key.length(); i++)

hashVal= 37*hashVal + key[i]

hashVal %= tableSize

• It is still possible that two keys will map to the same value

• Separate chaining

• each array slot is a pointer to a linked list of elements

• how would find/insert/remove work?

• Linear probing

• walk down the list until you find an empty slot