Hash Table — collision handling visualization
Insert, search, and delete keys. Watch the hash function map them to buckets and see how Separate Chaining vs Open Addressing (linear probe) resolve collisions differently.
Separate Chaining — each bucket holds a linked list. Colliding keys chain together; lookup traverses the chain.
Hash fn: djb2(k) % m
Average: O(1+α)
Worst: O(n) all in one bucket
Average: O(1) insert / search / delete
Chaining worst: O(n) all in one bucket
OA worst: O(n) full-table probe
Space: O(n+m)