diff --git a/u7/hash_table.py b/u7/hash_table.py index 3df4d32..5e3f762 100644 --- a/u7/hash_table.py +++ b/u7/hash_table.py @@ -67,4 +67,28 @@ class HashTable: key, value = slot index = self.probe(key) self.slots[index] = (key, value) - self.size += 1 \ No newline at end of file + self.size += 1 + def __getitem__(self, key): + self._check_key(key) + idx = self.probe(key) + slot = self.slots[idx] + + if slot is not self.empty and slot is not self.deleted and slot[0] == key: + return slot[1] + raise KeyError(key) + + def __setitem__(self, key, value): + self._check_key(key) + idx = self.probe(key) + slot = self.slots[idx] + + if slot is not self.empty and slot is not self.deleted and slot[0] == key: + self.slots[idx] = (key, value) + return + + if (self._size + 1) / self.__capacity > 0.7: + self._resize() + idx = self.probe(key) + + self.slots[idx] = (key, value) + self._size += 1 \ No newline at end of file