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:

- all of your program files for each of the four dictionary ADT implementations, and
- the above table of timings