1 from 数据结构.链表的实现 import Link
2
3
4 # 类似于集合的哈希表
5 class HashTable(object):
6 def __init__(self, size=100):
7 self.size = size
8 self.table = [Link() for _ in range(self.size)]
9
10 def h(self, k):
11 return k % self.size
12
13 def remove(self, k):
14 i = self.h(k)
15 self.table[i].del_item(k)
16
17 def insert(self, k):
18 i = self.h(k)
19 if self.find(k):
20 print('Duplicated insert!', k)
21 else:
22 self.table[i].ins_tail(k)
23
24 def find(self, k):
25 i = self.h(k)
26 return self.table[i].find(k)
27
28 def __str__(self):
29 return ','.join(map(str, self.table))
30
31
32 if __name__ == '__main__':
33 ht = HashTable()
34 ht.insert(1)
35 ht.insert(2)
36 ht.insert(3)
37 ht.insert(102)
38 ht.insert(102)
39 print(ht)
40 ht.remove(1)
41 print(ht)