an implementation of hash table in C