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
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)