不确定该代码是否有效,并且显示索引超出范围,我不知道如何解决
class Hash():
def __init__(self, user):
self.max = user
self.table = []
def isFull(self):
if len(self.table) == self.max:
return True
else:
return False
def insert(self,item):
if self.isFull():
print('Hash table is full')
else:
hashing = self.index(item)
if self.table[hashing] == None:
self.table[hashing] = item
else:
for a in range(len(self.table)):
if self.table[a] == None:
self.table[a] = item
return self.table
def index(self,item):
hashval = int(item) % self.max
return hashval
def searching(self,item):
pass
user = int(input('Enter a number for the maximum number of items that can be stored in the hash table: '))
它表示索引超出范围是由于-> if self.table [hashing] == None:
答案 0 :(得分:0)
您正在使用列表而不是字典。您应将<label class="hidden">Hidden label</label>
.hidden { display: none;}
替换为self.table = []
self.table = {}
, if self.table[hashing] == None:
将引发错误。您应该将其替换为:hashing not in self.table
if hashing not in self.table:
不会遍历for a in range(len(self.table)):
,因为它不是列表。 self.table
可以使用。
这是正确的代码:
for a in self.table: