This commit is contained in:
Vadym Afanasiev 2026-10-29 14:52:44 +00:00
parent beb4e9e362
commit 50c17e59ef

View File

@ -91,4 +91,29 @@ class HashTable:
idx = self.probe(key) idx = self.probe(key)
self.slots[idx] = (key, value) self.slots[idx] = (key, value)
self._size += 1 self._size += 1
def __delitem__(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:
self.slots[idx] = self.deleted
self._size -= 1
else:
raise KeyError(key)
def __contains__(self, key):
self._check_key(key)
idx = self.probe(key)
slot = self.slots[idx]
return slot is not self.empty and slot is not self.deleted and slot[0] == key
def __len__(self):
return self._size
def __iter__(self):
for slot in self.slots:
if slot is not self.empty and slot is not self.deleted:
yield slot[0]