我是Python新手,目前我有一个哈希表类,它通过线性探测来解决冲突。但是,如果负载因子大于2/3,我希望将数组的大小加倍。但是,我一直得到错误
if self.array[i]!=None:
IndexError: invalid index
是因为每次更改表大小时,getLoadandAverageProbeLength
中的大小都不更新吗?在
我的设置项功能:
^{pr2}$我的getLoadAndAverageProbeLength
def getLoadAndAverageProbeLength(self,probeLength):
count=0
averageProbeLength=0
for i in range(self.table_size):
if self.array[i]!=None:
count+=1
load= count/self.table_size
if count!=0:
averageProbeLength=probeLength/count
return load,averageProbeLength
这是我的哈希表的类构造函数:
def __init__(self, size=2):
self.count = 0
self.table_size = size
self.array = build_array(self.table_size)
self.collision=0
self.totalProbeLength=0
这是我的回溯:
Traceback (most recent call last):
File "C:\Users\User\Desktop\Assignment3Task3(b).py", line 18, in <module>
main()
File "C:\Users\User\Desktop\Assignment3Task3(b).py", line 15, in main
readFile(filename)
File "C:\Users\User\Desktop\Assignment3Task3(b).py", line 10, in readFile
hashTable[line]=line
File "C:\Users\User\Desktop\Assignment3Task4.py", line 55, in __setitem__
self.__setitem__(key,value)
File "C:\Users\User\Desktop\Assignment3Task4.py", line 29, in __setitem__
load,averageProbeLength= self.getLoadAndAverageProbeLength(self.totalProbeLength)
File "C:\Users\User\Desktop\Assignment3Task4.py", line 83, in getLoadAndAverageProbeLength
if self.array[i]!=None:
索引器错误:索引无效
目前没有回答
相关问题 更多 >
编程相关推荐