Beispiel #1
0
def testDelete():
    t = BST()
    t.put(2)
    t.put(1)
    t.put(3)
    t.delete(1)
    assert not t.contains(1)
Beispiel #2
0
class Set():
    def __init__(self):
        self.bst = BST()

    def add(self, e):
        self.bst.add(e)

    def contains(self, e):
        return self.bst.contains(e)

    def remove(self, e):
        self.bst.remove(e)

    #返回set中大于等于e的最小元素
    def ceil(self, e):
        pass

    #返回set中小于等于e的最大元素
    def floor(self, e):
        pass

    def getSize(self):
        return self.bst.getSize()

    def isEmpty(self):
        return self.bst.isEmpty()
class BSTSet(SetBase):
    def __init__(self):
        self._bst = BST()

    def get_size(self):
        return self._bst.size()

    def is_empty(self):
        return self._bst.is_empty()

    def add(self, e):
        return self._bst.add(e)

    def contains(self, e):
        return self._bst.contains(e)

    def remove(self, e):
        return self._bst.remove(e)
class BSTSet(Set):
    def __init__(self):
        self.bst = BST()

    # 判断集合是否为空
    def is_empty(self):
        return self.bst.is_empty()

    # 添加 ele 至集合
    def add(self, ele):
        self.bst.add(ele)

    # 是否包含元素 ele
    def contains(self, ele):
        return self.bst.contains(ele)

    # 从集合内删除 ele
    def remove(self, ele):
        self.remove(ele)

    # 获取集合大小
    def get_size(self):
        return self.bst.get_size()
Beispiel #5
0
f.close()

f = open('names_2.txt', 'r')
names_2 = f.read().split("\n")  # List containing 10000 names
f.close()

duplicates = []

# this solution is 0(n ^ 2)

BST = BST('names')

for name1 in names_1:
    BST.insert(name1)
for name2 in names_2:
    if BST.contains(name2):
        duplicates.append(name2)

end_time = time.time()
print(f"{len(duplicates)} duplicates:\n\n{', '.join(duplicates)}\n\n")
print(f"runtime: {end_time - start_time} seconds")

# ---------- Stretch Goal -----------
# Python has built-in tools that allow for a very efficient approach to this problem
# What's the best time you can accomplish with no restrictions on techniques or data
# structures?

# This solution is 0(n) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!

n1 = set(names_1)
n2 = set(names_2)
#!/usr/env/bin python3

# File that uses BST
from BST import BST

bst = BST(25)
bst.insert(12)
bst.insert(50)
bst.insert(6)
bst.insert(45)
bst.insert(1)

print("Does tree contain 1 {0}".format(bst.contains(1)))
print("Does tree contain 5 {0}".format(bst.contains(5)))
print("Does tree contain 12 {0}".format(bst.contains(12)))
print("Does tree contain 51 {0}".format(bst.contains(51)))



Beispiel #7
0
def testPut():
    t = BST()
    t.put(2)
    t.put(1)
    t.put(3)
    assert t.contains(1)
Beispiel #8
0
def testInit():
    t = BST()
    assert t.contains(1) == False