1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
| class HashTable: def __init__(self, size): self.size = size self.hash_table = [[] for _ in range(self.size)] def set_val(self, key, val): # Get the bucket from hash function hashed_key = hash(key) % self.size bucket = self.hash_table[hashed_key] found_key = False for index, record in enumerate(bucket): record_key, record_val = record # key conflict if record_key == key: found_key = True break if found_key: # conflict update bucket[index] = (key, val) else: # not conflect append bucket.append((key, val)) def get_val(self, key): # Get the bucket from hash function hashed_key = hash(key) % self.size bucket = self.hash_table[hashed_key] found_key = False for index, record in enumerate(bucket): record_key, record_val = record # key conflict if record_key == key: found_key = True break if found_key: return record_val else: return "No record found" def delete_val(self, key): # Get the bucket from hash function hashed_key = hash(key) % self.size bucket = self.hash_table[hashed_key] found_key = False for index, record in enumerate(bucket): record_key, record_val = record # key conflict if record_key == key: found_key = True break if found_key: bucket.pop(index) return # To print the items of hash map def __str__(self): return "".join(str(item) for item in self.hash_table) hash_table = HashTable(50) # set hash_table.set_val('0', 'henry') hash_table.set_val('1', 'eric') hash_table.set_val('2', 'lunski') hash_table.set_val('3', 'shvara') print(hash_table) print()
# get print(hash_table.get_val('2')) print()
# delete hash_table.delete_val('0') print(hash_table)
> [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][('1', 'eric')][][][][][][][('3', 'shvara')][('2', 'lunski')][][][][][][('0', 'henry')]
lunski
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][('1', 'eric')][][][][][][][('3', 'shvara')][('2', 'lunski')][][][][][][]
|