Пример #1
0
def test_bst():
    tree = BinarySearchTree()
    data_list = [random.randint(0, 10000) for _ in range(1000)]
    for elem in data_list:
        tree.insert(elem)

    for elem in data_list:
        assert tree.find(elem).data == elem

    assert is_bst(tree)
    for elem in data_list:
        tree.delete(elem)
        assert is_bst(tree)
Пример #2
0
def test_balanced():
    bst = BinarySearchTree()
    bst.put(13)
    bst.put(10)
    bst.put(15)
    bst.put(5)
    bst.put(11)
    bst.put(16)
    bst.put(4)
    bst.put(6)
    bst.put(7, False)
    assert bst.is_unbalanced(bst.root) is True

    bst.delete(7)
    bst.put(7, True)
    assert bst.is_unbalanced(bst.root) is False
Пример #3
0
def test_delete():
    bst = BinarySearchTree()
    bst.put(10)
    bst.put(4)
    bst.put(17)
    bst.put(1)
    bst.put(9)
    bst.put(18)
    bst.put(12)

    bst.delete(4)
    bst.put(4)
    bst.delete(18)
    bst.put(18)
    bst.delete(1)
    bst.delete(10)
    bst.delete(4)
    assert dfs(bst) == [9, 12, 17, 18]