示例#1
0
 def test_Delete(self):
     tree = RBtree()
     tree.insert(20)
     tree.insert(15)
     tree.insert(25)
     tree.insert(23)
     tree.insert(27)
     self.assertFalse(tree.root.red, False)
     self.assertEqual(tree.root.right.key, 25)
     self.assertEqual(tree.root.right.left.key, 23)
     self.assertTrue(tree.root.right.left.red, True)
     tree.deleteNode(25)
     self.assertEqual(tree.root.key, 20)
     self.assertEqual(tree.root.right.key, 27)
     self.assertFalse(tree.root.right.red, False)
     self.assertIsNone(tree.root.right.right.key, None)
     self.assertEqual(tree.root.right.left.key, 23)
     self.assertTrue(tree.root.right.left.red, True)
示例#2
0
    def test_root_delete(self):
        rb_tree = RBtree()
        root = Node(5)
        root.red = False
        left_child = Node(3)
        left_child.red = True
        left_child.parent = root
        left_child.left = Node(None)
        left_child.right = Node(None)
        right_child = Node(8)
        right_child.red = True
        right_child.parent = root
        right_child.left = Node(None)
        right_child.right = Node(None)
        root.left = left_child
        root.right = right_child
        rb_tree.root = root
        rb_tree.deleteNode(5)

        self.assertEqual(rb_tree.root.key, 8)
        self.assertEqual(rb_tree.root.left.key, 3)