示例#1
0
    def test_deleteMax_withNotEmptyBST_shouldDeleteMaxKeyFromBSTAndDecreaseBSTLength(
            self):
        bst = AVLTree()
        bst.put("A", 1)
        bst.put("B", 2)
        bst.put("C", 3)
        bst.put("D", 4)

        bst.delete_max()
        self.assertEqual(3, len(bst))
        self.assertNotIn("D", bst)

        bst.delete_max()
        self.assertEqual(2, len(bst))
        self.assertNotIn("C", bst)

        bst.delete_max()
        self.assertEqual(1, len(bst))
        self.assertNotIn("B", bst)

        bst.delete_max()
        self.assertEqual(0, len(bst))
        self.assertNotIn("A", bst)
示例#2
0
    def test_deleteMax_withCompareFunctionAndNotEmptyBST_shouldDeleteMaxKeyFromBSTAndDecreaseBSTLength(
            self):
        bst = AVLTree(self.cmp)
        bst.put([0, 0], 1)
        bst.put([0, 1], 2)
        bst.put([0, 2], 3)
        bst.put([0, 3], 4)

        bst.delete_max()
        self.assertEqual(3, len(bst))
        self.assertNotIn([0, 3], bst)

        bst.delete_max()
        self.assertEqual(2, len(bst))
        self.assertNotIn([0, 2], bst)

        bst.delete_max()
        self.assertEqual(1, len(bst))
        self.assertNotIn([0, 1], bst)

        bst.delete_max()
        self.assertEqual(0, len(bst))
        self.assertNotIn([0, 0], bst)
示例#3
0
    def test_max_withNotEmptyBST_shouldReturnMaxKeyFromBST(self):
        bst = AVLTree()
        bst.put("A", 1)
        self.assertEqual("A", bst.max())

        bst.put("B", 2)
        self.assertEqual("B", bst.max())

        bst.put("C", 3)
        self.assertEqual("C", bst.max())

        bst.put("D", 4)
        self.assertEqual("D", bst.max())

        bst.delete_max()
        self.assertEqual("C", bst.max())

        bst.delete_max()
        self.assertEqual("B", bst.max())

        bst.delete_max()
        self.assertEqual("A", bst.max())
示例#4
0
    def test_max_withCompareFunctionAndNotEmptyBST_shouldReturnMaxKeyFromBST(
            self):
        bst = AVLTree(self.cmp)
        bst.put([0, 1], 1)
        self.assertEqual([0, 1], bst.max())

        bst.put([0, 2], 2)
        self.assertEqual([0, 2], bst.max())

        bst.put([0, 3], 3)
        self.assertEqual([0, 3], bst.max())

        bst.put([0, 4], 4)
        self.assertEqual([0, 4], bst.max())

        bst.delete_max()
        self.assertEqual([0, 3], bst.max())

        bst.delete_max()
        self.assertEqual([0, 2], bst.max())

        bst.delete_max()
        self.assertEqual([0, 1], bst.max())