The best approach depends on the expected key distribution and number
of collisions. If relatively few collisions are expected, it really
doesn't matter which method is used. If lots of collisions are
expected, then which to use depends on the cost of rehashing or
probing vs. manipulating the extensible bucket data structure.
But here is source code example of An Hashmap Implementation in C