def test_problem_4_10(self): # tree 1 n1_1 = tb.BinaryNode(1) n2_1 = tb.BinaryNode(2) n7_1 = tb.BinaryNode(7) n9_1 = tb.BinaryNode(9) n3_1 = tb.BinaryNode(3, n1_1, n2_1) n8_1 = tb.BinaryNode(8, n7_1, n9_1) n5_1 = tb.BinaryNode(5, n3_1, n8_1) t1_head = n5_1 # tree 2 t2_head = n8_1 # tree 3 n12_3 = tb.BinaryNode(12) n13_3 = tb.BinaryNode(13) n11_3 = tb.BinaryNode(11, n12_3, n13_3) t3_head = n11_3 # tree 4 n7_4 = tb.BinaryNode(7) n9_4 = tb.BinaryNode(9) n8_4 = tb.BinaryNode(8, n7_4, n9_4) t4_head = n8_4 # tree 5 n6_5 = tb.BinaryNode(6) n9_5 = tb.BinaryNode(9) n8_5 = tb.BinaryNode(8, n6_5, n9_5) t5_head = n8_5 self.assertEqual(p_4_10.check_subtree(t1_head, t1_head), True) self.assertEqual(p_4_10.check_subtree(t2_head, t1_head), True) self.assertEqual(p_4_10.check_subtree(t3_head, t1_head), False) self.assertEqual(p_4_10.check_subtree(t4_head, t1_head), True) self.assertEqual(p_4_10.check_subtree(t5_head, t1_head), False)
def test_problem_4_10(self): """ construct binary tree 7 4 3 10 5 6 15 21 17 25 """ n21 = tb.BinaryNode(21) n17 = tb.BinaryNode(17) n15 = tb.BinaryNode(15, n21, n17) n6 = tb.BinaryNode(6) n3 = tb.BinaryNode(3, n6, n15) n10 = tb.BinaryNode(10) n5 = tb.BinaryNode(5) n4 = tb.BinaryNode(4, n10, n5) n7 = tb.BinaryNode(7, n4, n3) n25 = tb.BinaryNode(25) # unconnected node """ construct disconnected binary tree 30 31 32 """ n31 = tb.BinaryNode(31) n32 = tb.BinaryNode(32) n30 = tb.BinaryNode(30, n31, n32) self.assertEqual(True, p_4_10.check_subtree(n7, n15)) self.assertEqual(True, p_4_10.check_subtree(n7, n7)) self.assertEqual(True, p_4_10.check_subtree(n7, n21)) self.assertEqual(True, p_4_10.check_subtree(n7, n4)) self.assertEqual(False, p_4_10.check_subtree(n7, None)) self.assertEqual(False, p_4_10.check_subtree(n7, n30)) self.assertEqual(False, p_4_10.check_subtree(n4, n31)) self.assertEqual(False, p_4_10.check_subtree(n25, n31)) self.assertEqual(True, p_4_10.check_subtree(n30, n31)) self.assertEqual(False, p_4_10.check_subtree(None, None))