Ejemplo n.º 1
0
def test_scenario4():
    post_order_seq = [10]
    post_order_tree = bst.postorder_build(post_order_seq)

    pre_order_seq = [10]
    pre_order_tree = bst.preorder_build(pre_order_seq)

    assert post_order_seq == bst.postorder(post_order_tree)
    assert pre_order_seq == bst.preorder(pre_order_tree)
Ejemplo n.º 2
0
def test_scenario3():
    b = get_nodes()
    b[6].right = b[10]
    b[10].right = b[11]
    b[11].ight = b[20]

    post_order_seq = [20, 11, 10, 6]
    post_order_tree = bst.postorder_build(post_order_seq)

    pre_order_seq = [6, 10, 11, 20]
    pre_order_tree = bst.preorder_build(pre_order_seq)

    assert post_order_seq == bst.postorder(post_order_tree)
    assert pre_order_seq == bst.preorder(pre_order_tree)
Ejemplo n.º 3
0
def test_scenario2():
    b = get_nodes()
    b[10].left = b[6]
    b[6].left = b[5]
    b[5].left = b[2]
    b[2].left = b[1]

    post_order_seq = [1, 2, 5, 6, 10]
    post_order_tree = bst.postorder_build(post_order_seq)

    pre_order_seq = [10, 6, 5, 2, 1]
    pre_order_tree = bst.preorder_build(pre_order_seq)

    assert post_order_seq == bst.postorder(post_order_tree)
    assert pre_order_seq == bst.preorder(pre_order_tree)
Ejemplo n.º 4
0
def test_scenario1():
    b = get_nodes()
    b[10].left, b[10].right = b[5], b[20]
    b[5].left, b[5].right = b[2], b[6]
    b[2].left = b[1]
    b[20].left, b[20].right = b[11], b[21]

    post_order_seq = [1, 2, 6, 5, 11, 21, 20, 10]
    post_order_tree = bst.postorder_build(post_order_seq)

    pre_order_seq = [10, 5, 2, 1, 6, 20, 11, 21]
    pre_order_tree = bst.preorder_build(pre_order_seq)

    assert post_order_seq == bst.postorder(post_order_tree)
    assert pre_order_seq == bst.preorder(pre_order_tree)
Ejemplo n.º 5
0
from epi2.binary_tree_9_11 import BinaryTree
from epi2.bst_14_5 import preorder


def build_tree(sorted_values):
    def helper(start, end):
        node = None
        if start == end:
            node = BinaryTree(sorted_values[start])
        elif start < end:
            mid = (start + end) // 2
            node = BinaryTree(sorted_values[mid], helper(start, mid - 1),
                              helper(mid + 1, end))

        return node

    return helper(0, len(sorted_values) - 1)


if __name__ == "__main__":
    sv = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    print(preorder(build_tree(sv)))
Ejemplo n.º 6
0
def test_scenario2():
    vals = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    tree = build_tree(vals)
    assert [5, 2, 1, 3, 4, 7, 6, 8, 9] == preorder(tree)
Ejemplo n.º 7
0
def test_scenario1():
    vals = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    tree = build_tree(vals)
    assert [5, 2, 1, 3, 4, 8, 6, 7, 9, 10] == preorder(tree)