This document discusses hashing and hash tables. It begins by defining hashing as transforming a string into a shorter fixed-length value using a hash function. This value represents the original string and is used to index and retrieve items from a database faster than using the original value.
It then discusses hash tables, which use hashing to allow insertions, deletions and searches of items in constant average time. A hash table is an array containing items indexed by hash values between 0-TableSize-1 generated by a hash function. Common hash functions discussed include division, multiplication, truncation, folding and extraction methods.
The document concludes by discussing collision resolution methods for hash tables, including separate chaining which uses linked