Hash tables: analysis of chaining