字典,通过保存key-data键值对的数据类型。
ADT Map的结构是键值关联的无序集合。其中关键码key具有唯一性,通过关键码可以唯一确定一个数据值。
通过散列表构造Map。
class HashTable:
def __init__(self):
self.size=11 #可以任意设置,但为了便于求解,应该设为素数
self.slots=[None]*self.size
self.data=[None]*self.size
#定义散列函数
def hashfunction(self,key):
return key%self.size
#定义冲突解决方法,简单线性加一
def rehash(self,oldhash):
return (oldhash+1)%self.size
def put(self,key,data):
hashvalue=self.hashfunction(key)
#key不存在
if self.slots[hashvalue] == None:
self.slots[hashvalue] = key
self.data[hashvalue] = data
#key已存在
else:
#未发生冲突
if self.slots[hashvalue] &#