CS 70

Phase 7: More Fun with Hash Tables (Optional)

This part of the assignment is optional. Doing some aspect of this part will add up to three bonus points to your overall Homework 8 score; as always, the reason to do the optional is not to get points, but to learn more!

If you decide to do this part, add a file named Fun.md to your repository and be sure to describe what you did and how to run it in that file. You can also add any additional test cases you created to hashset-test.cpp, but, when submitting, you should comment out any tests that would fail on the unmodified version of your HashSet<T> class template.

Here are some extra things you can try with your hash-table implementation.

  • Adding an Iterator: Implement an iterator for your HashSet<T> class template so that users can iterate through all elements in the hash set.
  • Implementing erase: Implement an erase member function for your HashSet<T> class template that removes a specified element from the hash set.
  • Try Open Addressing: Create a new class template OAHashSet<T> that implements a hash table using open addressing (with linear probing) instead of separate chaining.

For most pairs, picking just one of these options is plenty to feel like you've done something extra. But if you're feeling ambitious, you can try more than one!

  • Goat speaking

    Meh. I'm not doing any of this optional stuff.

  • Dog speaking

    Oh, come on! This is where the fun is!

  • Pig speaking

    It's a chance to learn MORE!

  • Horse speaking

    Hay! I'm getting an odd sense of déjà vu…

To Complete This Part of the Assignment…

You'll know you're done with this part of the assignment when you've done all of the following:

(When logged in, completion status appears here.)