示例#1
0
def test_binary_search_tree():
    # Create a complete binary search tree of 3, 7, or 15 items in level-order
    # items = [2, 1, 3]
    items = [4, 2, 6, 1, 3, 5, 7]
    # items = [8, 4, 12, 2, 6, 10, 14, 1, 3, 5, 7, 9, 11, 13, 15]
    print('items: {}'.format(items))

    tree = BinarySearchTree()
    print('tree: {}'.format(tree))
    print('root: {}'.format(tree.root))

    print('\nInserting items:')
    for item in items:
        tree.insert(item)
        print('insert({}), size: {}'.format(item, tree.size))
    print('root: {}'.format(tree.root))

    print('\nSearching for items:')
    for item in items:
        result = tree.search(item)
        print('search({}): {}'.format(item, result))
    item = 123
    result = tree.search(item)
    print('search({}): {}'.format(item, result))

    print('\nTraversing items:')
    print('items in-order:    {}'.format(tree.items_in_order()))
    print('items pre-order:   {}'.format(tree.items_pre_order()))
    print('items post-order:  {}'.format(tree.items_post_order()))
    print('items level-order: {}'.format(tree.items_level_order()))
def simple_tree():
    t = BinaryTree()
    t.insert(5)
    t.insert(10)
    t.insert(2)
    t.insert(17)
    return t
def simple_tree():
    t = BinaryTree()
    t.insert(5)
    t.insert(10)
    t.insert(2)
    t.insert(17)
    return t
示例#4
0
def balanced_tree():
    t = BinaryTree()
    t.insert(5)
    t.insert(2)
    t.insert(1)
    t.insert(3)
    t.insert(8)
    t.insert(7)
    t.insert(9)
    return t
def balanced_tree():
    t = BinaryTree()
    t.insert(5)
    t.insert(2)
    t.insert(1)
    t.insert(3)
    t.insert(8)
    t.insert(7)
    t.insert(9)
    return t
示例#6
0
def unbalanced_tree():
    t = BinaryTree()
    t.insert(5)
    t.insert(6)
    t.insert(7)
    t.insert(8)
    t.insert(9)
    t.insert(4)
    return t
def unbalanced_tree():
    t = BinaryTree()
    t.insert(5)
    t.insert(6)
    t.insert(7)
    t.insert(8)
    t.insert(9)
    t.insert(4)
    return t
def test_balance_one_node_tree_returns_1():
    t = BinaryTree()
    t.insert(1)
    assert t.balance() == 0
示例#9
0
def complex_tree():
    t = BinaryTree()
    t.insert(100)
    t.insert(80)
    t.insert(60)
    t.insert(40)
    t.insert(20)
    t.insert(50)
    t.insert(70)
    t.insert(90)
    t.insert(85)
    t.insert(95)
    t.insert(120)
    t.insert(140)
    t.insert(160)
    t.insert(180)
    t.insert(110)
    t.insert(175)
    t.insert(170)
    t.insert(176)
    return t
def complex_tree():
    t = BinaryTree()
    t.insert(100)
    t.insert(80)
    t.insert(60)
    t.insert(40)
    t.insert(20)
    t.insert(50)
    t.insert(70)
    t.insert(90)
    t.insert(85)
    t.insert(95)
    t.insert(120)
    t.insert(140)
    t.insert(160)
    t.insert(180)
    t.insert(110)
    t.insert(175)
    t.insert(170)
    t.insert(176)
    return t
def test_balance_one_node_tree_returns_1():
    t = BinaryTree()
    t.insert(1)
    assert t.balance() == 0