哈希表及其应用
基本概念
哈希表可以存储各种类型的数据,当我们从哈希表中查找所需要的数据时,理想情况是不经过任何比较,一次存取便能得到所查记录,那就必须在记录的存储位置和存储的数据之间建立一个确定的对应关系 f,使每个存储的数据和结构中一个唯一的存储位置相对应。(存储位置相当于数组的索引)
举例:
目的:存储一些整数在哈希表中;
假设哈希函数是 对101取余。
class hash_table:
def __init__(self, size=101):
self.size = size
self.T = [LinkList() for _ in range(self.size)]
def hash_fun(self, k):
i = k % self.size
return i
def insert(self, obj):
h = self.hash_fun(obj)
if self.find(obj):
print('Duplicated insert!!')
else:
self.T[h].append(obj)
def find(self, obj):
h = self.hash_fun(obj)
return self.T[h].find(obj)