Esempio n. 1
0
def BSTFullTest():
    """
    Various tests for the BST class, including insertion, deletion, inorder walks, etc.
    For BST class testing.
    """
    print "\nTesting BST: random tests"
    for i in range(20):
        tree = BST()
        passed = BSTRandomTest(tree, 1000)
        if passed:
            print "Passed random test", i + 1

    print "\nTesting BST: various operations"
    tree = BST()
    for i in range(20):
        v = random.randint(-99, 99)
        tree.insert(Node(v))

    print "Height =", tree.height()
    print "Minimum =", tree.minimum()
    print "Maximum =", tree.maximum()
    print "In-order Walk =", tree.inorderWalk()
    print "Random tree ="
    print tree

    arr = [21, 45, 1, 34, 8, -1, 99, -54, 60, 2]
    tree = BSTFromArray(arr)
    print("Test tree:")
    print(tree)
    print("Root:")
    print(tree._r)
    print("In order walk:")
    print(tree.inorderWalk())
    print("Min, max:")
    print(str(tree.minimum()), str(tree.maximum()))

    print("Height = ", tree.height())

    print("Successor of 34:")
    n = tree.search(34)
    s = tree.successor(n)
    print(s)

    print("Successor of 100:")
    n = tree.search(100)
    s = tree.successor(n)
    print(s)

    print("Predecessor of 34:")
    n = tree.search(34)
    s = tree.predecessor(n)
    print(s)

    print("Predecessor of -54:")
    n = tree.search(-54)
    s = tree.predecessor(n)
    print(s)

    print("Find and delete 34:")
    n = tree.search(34)
    print(n)
    tree.delete(n)
    print(tree.inorderWalk())

    print("Find and delete 21:")
    n = tree.search(21)
    s = tree.successor(n)
    print(n)
    print(s)
    tree.delete(n)
    print(tree.inorderWalk())
    print(tree._r)
    print(tree._r.right)
    print(tree._r.right.parent)