Esempio n. 1
0
    u = len(s)
    first_line = (x + 1) * ' ' + (n - x - 1) * \
        '_' + s + y * '_' + (m - y) * ' '
    second_line = x * ' ' + '/' + \
        (n - x - 1 + u + y) * ' ' + '\\' + (m - y - 1) * ' '
    if p < q:
        left += [n * ' '] * (q - p)
    elif q < p:
        right += [m * ' '] * (p - q)
    zipped_lines = zip(left, right)
    lines = [first_line, second_line] + \
        [a + u * ' ' + b for a, b in zipped_lines]
    return lines, n + m + u, max(p, q) + 2, n + u // 2


BST = BinarySearchTree(6)
BST.insert(3)
BST.insert(2)
BST.insert(4)
BST.insert(-1)
BST.insert(1)
BST.insert(-2)
BST.insert(8)
BST.insert(7)

print("before deletion:")
display(BST.root)

BST.delete(6)
print("after deletion:")
display(BST.root)
def preOrderTraversal(root):
    if root is None:
        return None

    result = []
    stack = [root]

    while stack:
        currNode = stack.pop()
        result.append(currNode.value)

        if currNode.right:
            stack.append(currNode.right)

        if currNode.left:
            stack.append(currNode.left)

    return result


BST = BinarySearchTree(6)
BST.insert(4)
BST.insert(9)
BST.insert(5)
BST.insert(2)
BST.insert(8)
BST.insert(12)

result = preOrderTraversal(BST.root)

print(result)
Esempio n. 3
0
from Tree import BinarySearchTree

my_tree = BinarySearchTree()

my_tree.insert(100)
my_tree.insert(200)
my_tree.insert(50)
my_tree.insert(75)
my_tree.insert(150)

my_tree.inorder(my_tree.root)