在Python中不使用库集合类定义集合数据结构的程序
假设我们想使用以下方法实现一个集合数据结构-
构造集合的新实例的构造函数
add(val)将整数val插入到集合中
exists(val)检查val是否在集合中
remove(val)从集合中删除val
所以,如果我们构造一个集合s,那么调用s.add(10),s.add(20),s.add(10),s.exists(10),s.remove(10),s.exists(10),s.exists(20),那么输出将是
对于s.add(10)它将插入10
对于s.add(20)它将插入20
10已经在s中,所以什么都不会发生
s.exists(10)将返回true为10
通过s.remove(10)删除10
s.exists(10)将返回false因为10被删除并且一个元素只能存在一次
s.exists(20)将返回true,因为那里存在20。
示例
让我们看看以下实现以获得更好的理解-
from collections import defaultdict
class MySet:
def __init__(self):
self.buckets= defaultdict(list)
def add(self, val):
if not self.exists(val):
self.buckets[val].append(val)
def exists(self, val):
return val in self.buckets[val]
def remove(self, val):
del self.buckets[val]
s = MySet()
s.add(10)
s.add(20)
s.add(10)
print(s.exists(10))
s.remove(10)
print(s.exists(10))
print(s.exists(20))输入
s = MySet() s.add(10) s.add(20) s.add(10) s.exists(10) s.remove(10) s.exists(10) s.exists(20)输出结果
True False True