def test_basic_functionality(self):
     in_ordr = [1, 3, 16, 29, 14, 86, 4, 18, 69, 63, 141]
     pre_ordr = [4, 3, 1, 29, 16, 86, 14, 69, 18, 141, 63]
     post_order = [1, 16, 14, 86, 29, 3, 18, 63, 141, 69, 4]
     tr = BinaryTree.from_in_and_pre_order_traversal(in_ordr, pre_ordr)
     curr_pre_order = pre_order_non_recur(tr.root)
     self.assertEqual(curr_pre_order, pre_ordr)
Пример #2
0
 def test_generate_node_count_data3(self):
     in_ordr = [3, 4, 1, 2, 6, 8, 12, 13, 16, 21]
     pre_ordr = [3, 6, 4, 2, 1, 16, 12, 8, 13, 21]
     tr = BinaryTree.from_in_and_pre_order_traversal(in_ordr, pre_ordr)
     util_generate_node_count_data(tr.root)
     self.assertEqual(tr.root['node_count'], len(in_ordr))
     self.assertEqual(tr.root['right']['node_count'], len(in_ordr) - 1)
     self.assertEqual(tr.root['right']['right']['node_count'], 5)
Пример #3
0
 def test_build_binary_tree(self):
     in_ordr = [1, 3, 16, 29, 14, 86, 4, 18, 69, 63, 141]
     pre_ordr = [4, 3, 1, 29, 16, 86, 14, 69, 18, 141, 63]
     post_order = [1, 16, 14, 86, 29, 3, 18, 63, 141, 69, 4]
     tr = BinaryTree.from_in_and_pre_order_traversal(in_ordr, pre_ordr)
     print("printing post order -->")
     tr.printPostOrder()
     print("expected order -->")
     print("(" + " ".join(map(str, post_order)) + " )")
     self.assertEqual(5, tr.maxDepth())
    def test_basic_functionality(self):
        in_order = [16, 6, 108, -1, -3, 42, 3, 4, -6, 12, 36, 8]
        pre_order = [3, 6, 16, -3, -1, 108, 42, 12, 4, -6, 8, 36]
        tr = BinaryTree.from_in_and_pre_order_traversal(in_order, pre_order)
        tr.populate_parent()

        self.assertEquals(get_node_successor(tr.root['left'])['data'], 108)
        self.assertEquals(get_node_successor(tr.root['left']['left'])['data'], 6)
        self.assertEquals(get_node_successor(tr.root['right']['left'])['data'], -6)
        self.assertEquals(get_node_successor(tr.root['right']['right']), None)
        self.assertEquals(get_node_successor(tr.root['right']['right']['left'])['data'], 8)
        self.assertEquals(get_node_successor(tr.root['left']['right']['left'])['data'], -3)
        self.assertEquals(get_node_successor(tr.root['left']['right']['right'])['data'], 3)
Пример #5
0
    def test_print_lvl_order(self):
        in_ordr = [1, 3, 16, 29, 14, 86, 4, 18, 69, 63, 141]
        pre_ordr = [4, 3, 1, 29, 16, 86, 14, 69, 18, 141, 63]
        tr = BinaryTree.from_in_and_pre_order_traversal(in_ordr, pre_ordr)
        expected_out = '''
        4
        3 69
        1 29 18 141
        16 86 63
        14
        '''

        print_level_order_using_dfs(tr)
        print("expected out -->")
        print(expected_out)
 def setUp(self):
     in_ordr = [1, 3, 16, 29, 14, 86, 4, 18, 69, 63, 141]
     pre_ordr = [4, 3, 1, 29, 16, 86, 14, 69, 18, 141, 63]
     self.tr = BinaryTree.from_in_and_pre_order_traversal(in_ordr, pre_ordr)
     self.tr.populate_parent()
Пример #7
0
 def test_get_kth_node_in_order3(self):
     in_ordr = [3, 4, 1, 2, 6, 8, 12, 13, 16, 21]
     pre_ordr = [3, 6, 4, 2, 1, 16, 12, 8, 13, 21]
     tr = BinaryTree.from_in_and_pre_order_traversal(in_ordr, pre_ordr)
     util_generate_node_count_data(tr.root)
     self._test_kth_in_order(in_ordr, tr.root)
Пример #8
0
 def test_get_kth_node_in_order2(self):
     in_ordr = [1, 3, 16, 29, 14, 86, 4, 18, 69, 63, 141]
     pre_ordr = [4, 3, 1, 29, 16, 86, 14, 69, 18, 141, 63]
     tr = BinaryTree.from_in_and_pre_order_traversal(in_ordr, pre_ordr)
     util_generate_node_count_data(tr.root)
     self._test_kth_in_order(in_ordr, tr.root)
Пример #9
0
 def test_generate_node_count_data2(self):
     in_ordr = [1, 3, 16, 29, 14, 86, 4, 18, 69, 63, 141]
     pre_ordr = [4, 3, 1, 29, 16, 86, 14, 69, 18, 141, 63]
     tr = BinaryTree.from_in_and_pre_order_traversal(in_ordr, pre_ordr)
     util_generate_node_count_data(tr.root)
     self.assertEqual(tr.root['node_count'], len(in_ordr))
Пример #10
0
 def test_binary_tree_in_order_path(self):
     in_ordr = [1, 3, 16, 29, 14, 86, 4, 18, 69, 63, 141]
     pre_ordr = [4, 3, 1, 29, 16, 86, 14, 69, 18, 141, 63]
     tr = BinaryTree.from_in_and_pre_order_traversal(in_ordr, pre_ordr)
     self.assertEqual(tr.getInOrderPath(), in_ordr)