For this assignment, you are to re-implement homework #5 four ways:

1) Use the dictionary ADT using the same hash table as Lab 11 Part A (HashDict). Recall that this implementation used linked lists at each hash table entry.

2) implement the dictionary ADT using the open-address hash table as Lab 11 Part B (HashTable). (Recall the HashTable supports both both linear probing and quadratic probing)

3) implement the dictionary ADT using the same hash table as Lab 11 Part A (HashDict), except each hash table entry should contains a BST instead of a linked list.

4) implement the dictionary ADT using the same hash table as Lab 11 Part A (HashDict), except each hash table entry should contains an AVL instead of a linked list.

For each of the above dictionary ADTs, time the Word-Concordance program using two different sizes for the HashDict/HashTable sizes 3,000 and 6,000. (I.E., one run with the stop-words hash table size of 3,000 and the word-concordance hash table of 3,000, and the second run with the stop-words hash table size of 6,000 and the word-concordance hash table of 6,000).

After you complete the four, above dictionary ADT implementations, complete the following timings using your word-concordance programs and the same data files as homework #5:

Program Execution Time (seconds)

Hash Table Sizes of 3,000 Hash Table Sizes of 6,000
Original HashDict using linked lists at each hash table entry    
Original HashTable using open-address with linear probing    
Original HashTable using open-address with quadratic probing    
Original HashDict using a BST at each hash table entry

   
Original HashDict using an AVL at each hash table entry

   

HW #5 (and #6) DATA FILES

The stop words are in the file

http://www.cs.uni.edu/~fienup/cs052sum09/homework/stop_words.txt

The textual information to be examined is in the file

http://www.cs.uni.edu/~fienup/cs052sum09/homework/hw5data.txt

SUBMISSION

You are to submit and turn in: