Write two different implementations of a hash table for strings (your choice of C char * or C++ string class). One implementation should use chaining to handle collisions; the other should use double-hashing.
Test your tables with two data sets: One with a number of strings equal around 50-60% of the size of the hash table, and one with number of strings equal to around 95-100% of the size of the hash table.
Compare your two implementations (Which one gives better performance? Which was easier to code/debug? Any difference in behavior for the two data sets?)