哈希表的实现

 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)

 

posted @ 2021-12-06 21:08  Avery_rainys  阅读(51)  评论(0)    收藏  举报