def createBinarySearchTree(values):
    """ Values is ordered array of distinct integers"""
    midIdx = ceil(len(values) / 2) - 1
    newNode = Node(values[midIdx])
    if midIdx > 0:
        newNode.left = createBinarySearchTree(values[:midIdx])
    if midIdx < len(values) - 1:
        newNode.right = createBinarySearchTree(values[midIdx + 1:])
    return newNode
Пример #2
0
from trees import Node
from search import (depth_first_search, breadth_first_search,
                    recursion_tree_traverse)

# Setup Tree
root = Node(0)
root.left = Node(1)
root.right = Node(2)
root.left.left = Node(3)
root.left.right = Node(4)
root.right.left = Node(5)
root.right.right = Node(6)

print('Depth First Search')
depth_first_search(root)
print('=' * 25)
print('Breadth First Search')
breadth_first_search(root)
print('Recursion Tree Traversal')
recursion_tree_traverse(root)
    # CC32
    node1 = Node(150)
    node2 = Node(100)
    node3 = Node(250)
    node4 = Node(75)
    node5 = Node(160)
    node6 = Node(200)
    node7 = Node(350)
    node8 = Node(125)
    node9 = Node(175)
    node10 = Node(300)
    node11 = Node(500)
    binary_tree1 = BinaryTree()
    binary_tree1.root = node1
    node1.left = node2
    node1.right = node3
    node2.left = node4
    node2.right = node5
    node3.left = node6
    node3.right = node7
    node5.left = node8
    node5.right = node9
    node7.left = node10
    node7.right = node11

    node_one = Node(42)
    node_two = Node(100)
    node_three = Node(600)
    node_four = Node(15)
    node_five = Node(160)
    node_six = Node(200)