index h */ for ( it = htab[h]; it != NULL; it = it->next ) { if ( strcmp ( key, it->data ) == 0 ) return it->data; } } return NULL; } Performance Deletion may be hard. Coalesced chaining avoids the effects of primary and secondary clustering, and as a result can take advantage of the efficient search algorithm for separate chaining. If the chains are short, this strategy is very efficient and can be highly condensed, memory-wise. As in open addressing, deletion from a coalesced hash table is awkward and potentially expensive, and resizing the table is terribly expensive and should be done rarely, if ever. References Hashing Articles with example C code