def test_add_internal_child_to_binary_node(self): one = BinaryNode(1) two = BinaryNode(2) three = BinaryNode(3) one.left = three # one = {left: 3, right: None} one.insert(two, three) self.assertTrue(test_binary_node(one, 1, 2, None, None)) self.assertTrue(test_binary_node(two, 2, 3, None, 1)) self.assertTrue(test_binary_node(three, 3, None, None, 2))
def test_add_external_child_to_binary_node(self): one = BinaryNode(1) two = BinaryNode(2) one.insert(two) self.assertTrue(test_binary_node(one, 1, 2, None, None)) self.assertTrue(test_binary_node(two, 2, None, None, 1)) three = BinaryNode(3) one.insert(three) self.assertTrue(test_binary_node(one, 1, 2, 3, None)) self.assertTrue(test_binary_node(two, 2, None, None, 1)) self.assertTrue(test_binary_node(three, 3, None, None, 1)) four = BinaryNode(4) two.insert(four) self.assertTrue(test_binary_node(two, 2, 4, None, 1)) self.assertTrue(test_binary_node(four, 4, None, None, 2))
def wide_btree(): "Returns a root node filled in the below pattern" # 1 # / \ # 2 3 # / \ / # 4 5 6 # / \ # 7 8 node1 = BinaryNode(1) node2 = BinaryNode(2) node3 = BinaryNode(3) node4 = BinaryNode(4) node5 = BinaryNode(5) node6 = BinaryNode(6) node7 = BinaryNode(7) node8 = BinaryNode(8) node1.insert(node2) node1.insert(node3) node2.insert(node4) node2.insert(node5) node3.insert(node6) node6.insert(node7) node6.insert(node8) return node1