a hashtable implementation in c