def test_problem_4_6(self): node1 = tb.BinaryNodeLP(1) node2 = tb.BinaryNodeLP(2) node3 = tb.BinaryNodeLP(3) node4 = tb.BinaryNodeLP(4) node5 = tb.BinaryNodeLP(5) node6 = tb.BinaryNodeLP(6) node8 = tb.BinaryNodeLP(8) node10 = tb.BinaryNodeLP(10) node1.parent = node2 node3.parent = node2 node2.parent = node4 node5.parent = node6 node6.parent = node4 node4.parent = node8 node10.parent = node8 node8.left = node4 node8.right = node10 node4.left = node2 node4.right = node6 node2.left = node1 node2.right = node3 node6.left = node5 self.assertEqual(node8, p_4_6.successor(node6)) self.assertEqual(node5, p_4_6.successor(node4)) self.assertEqual(node3, p_4_6.successor(node2)) self.assertEqual(None, p_4_6.successor(node10))
def test_problem_4_6(self): # construct a binary tree node0 = tb.BinaryNodeLP(0) node1 = tb.BinaryNodeLP(1) node2 = tb.BinaryNodeLP(2) node3 = tb.BinaryNodeLP(3) node4 = tb.BinaryNodeLP(4) node5 = tb.BinaryNodeLP(5) node6 = tb.BinaryNodeLP(6) node8 = tb.BinaryNodeLP(8) node9 = tb.BinaryNodeLP(9) node10 = tb.BinaryNodeLP(10) """ 8 4 10 2 6 1 3 5 0 9 In-order traversal: 1, 2, 0, 3, 9, 4, 5, 6, 8, 10 """ node0.parent = node3 node1.parent = node2 node3.parent = node2 node2.parent = node4 node5.parent = node6 node6.parent = node4 node4.parent = node8 node9.parent = node3 node10.parent = node8 node8.left = node4 node8.right = node10 node4.left = node2 node4.right = node6 node2.left = node1 node2.right = node3 node6.left = node5 node3.left = node0 node3.right = node9 self.assertEqual(node8, p_4_6.successor(node6)) self.assertEqual(node5, p_4_6.successor(node4)) self.assertEqual(node0, p_4_6.successor(node2)) self.assertEqual(node3, p_4_6.successor(node0)) self.assertEqual(node4, p_4_6.successor(node9)) self.assertEqual(None, p_4_6.successor(node10))
def test_problem_4_8(self): n7 = tb.BinaryNodeLP(7) n4 = tb.BinaryNodeLP(4, parent=n7) n3 = tb.BinaryNodeLP(3, parent=n7) n7.left = n4 n7.right = n3 n10 = tb.BinaryNodeLP(10, parent=n4) n5 = tb.BinaryNodeLP(5, parent=n4) n4.left = n10 n4.right = n5 n6 = tb.BinaryNodeLP(6, parent=n3) n15 = tb.BinaryNodeLP(15, parent=n3) n3.left = n6 n3.right = n15 n21 = tb.BinaryNodeLP(21, parent=n15) n17 = tb.BinaryNodeLP(17, parent=n15) n15.left = n21 n15.right = n17 n25 = tb.BinaryNodeLP(25) self.assertEqual(n3, p_4_8.fca(n6, n21)) self.assertEqual(n7, p_4_8.fca(n10, n21)) self.assertEqual(None, p_4_8.fca(n15, n25)) self.assertEqual(n7, p_4_8.fca(n7, n7)) self.assertEqual(n7, p_4_8.fca(n3, n4))