How to keep track of collisions and probe length in a hashtable?Mine keeps returning 0?
def __init__(self, size=30):
self.count = 0
self.table_size =size
self.array =build_array(self.table_size)
self.collision=0
self.totalProbeLength=0
My set item function.
def __setitem__(self, key, value):
position =self.hash_value(key)
sameKeyCollision=False
for _ inrange(self.table_size):
if self.array[position] is None:#found empty slot, collisionresolve
self.array[position] = (key, value)
self.count += 1
sameKeyCollision=False
return
elif self.array[position][0] == key:#found key
self.array[position] = (key, value)#update value, nocollision
return
elif self.array[position][0] !=key and sameKeyCollision==False:#notfound try next,first time collision
position = (position+1) % self.table_size
self.totalProbeLength+=1
self.collision+=1
sameKeyCollision=True
elif self.array[position][0] !=key andsameKeyCollision==True:#probing
position = (position+1) % self.table_size
self.totalProbeLength+=1
raise ValueError(“Tableis Full!”)
Expert Answer
An answer will be send to you shortly. . . . .