struct bucket { char **data; int allocated; int firstFree; /* as in data[firstFree] */ }; struct hash_table { int size; struct bucket *bucket; }; struct hash_table *new_table(int size); char *in_table(struct hash_table *t, char *s); void add_to_table(struct hash_table *t, char *s); void hash_stats(struct hash_table *t);