Implement a chaining hash table with h(k) = k mod m (m = 4), insert keys that collide, and verify SEARCH on present and absent keys.
Implement a chaining hash table with h(k) = k mod m (m = 4), insert keys that collide, and verify SEARCH on present and absent keys.
Answer
class ChainHash: def __init__(self, m): self.m = m self.slots = [[] for _ in range(m)] def _h(self, k): return k % self.m def insert(self, k, v): chain = self.slots[self._h(k)] for i, (kk, _) in enumerate(chain): if kk == k: chain[i] = (k, v) return chain.append((k, v)) def search(self, k): for kk, vv in self.slots[self._h(k)]: if kk == k: return vv return None h = ChainHash(4) for k, v in [(10, "a"), (14, "b"), (22, "c"), (7, "d")]: h.insert(k, v) print("search 14:", h.search(14)) print("search 22:", h.search(22)) print("search 99:", h.search(99)) print("slot of 10,14,22:", h._h(10), h._h(14), h._h(22))