838 B
838 B
Hash table
Design and implement a hash table which uses chaining (linked lists) to handle collissions
Non-OOP solution
hash_num = 10
def hash_table(vals):
items = [] * hash_num
for v in vals:
mod = v % hash_num
if items[mod]:
items[mod].append(v)
continue
items[mod] = [v]
return items
OOP solution
class hashTable:
def __init__(self, hash_num=10):
self.items = []
self.hash_num = hash_num
def create_hashtable(self, vals):
items = [[] * hash_num]
for v in vals:
items[v % hash_num].append(v)
return items
def main():
vals = [1,3,4,5,10,11,13,14]
hasht = hashTable()
items = hasht.create_hashtable(vals)
print(items)
if __name__ == "__main__":
main()