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())
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)
#!/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)))