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))
Esempio n. 2
0
    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))
Esempio n. 3
0
 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))