Esempio n. 1
0
def heightrandom():
    for i in range(2, 10, 2):
        L = [100 * random() for x in range((2**i) - 1)]
        BSTTree = BST()
        TreapTree = Treap()
        for x in L:
            BSTTree.insert(x)
            TreapTree.insert(x)
        print("Complete Tree would have height of", i - 1)
        print("Height of BST is: ", BSTTree.height())
        print("Height of Treap is: ", TreapTree.height())
Esempio n. 2
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)
Esempio n. 3
0
#!/home/hmsjwzb/python/bin/python3

from BST import BST
from StdIn import StdIn

if __name__ == '__main__':
    st = BST()
    i = 0
    StdIn = StdIn()
    while not StdIn.isEmpty():
        key = StdIn.readString()
        i += 1
        st.put(key, i)

    ##print(st.select(3))
    print(st.rank('L'))
    print(st.height())

    for s in st.keys():
        print(s + " " + str(st.get(s)))