Esempio n. 1
0
    def test_delete_w_one_child(self):
        bin = BST()
        bin.insert(5)
        bin.insert(2)
        bin.insert(18)
        bin.insert(-4)
        bin.insert(3)
        bin.insert(21)
        bin.insert(19)
        bin.insert(25)

        bin.delete(bin.root.right)

        self.assertEqual([x.val for x in bin.get_level(1)], [2, 21])
Esempio n. 2
0
    def test_delete_w_two_children(self):
        bin = BST()
        bin.insert(5)
        bin.insert(2)
        bin.insert(12)
        bin.insert(-4)
        bin.insert(3)
        bin.insert(9)
        bin.insert(21)
        bin.insert(19)
        bin.insert(25)

        bin.delete(bin.root.right)

        self.assertEqual([x.val for x in bin.get_level(1)], [2, 19])
        self.assertEqual([x.val for x in bin.get_level(3)], [25])
Esempio n. 3
0
    def test_delete_w_no_children(self):
        bin = BST()
        bin.insert(7)
        bin.insert(3)
        bin.insert(8)
        bin.insert(1)
        bin.insert(5)
        bin.insert(2)
        bin.insert(4)
        bin.insert(6)
        bin.insert(10)
        bin.insert(9)
        bin.insert(20)

        bin.delete(bin.root.right.right.right)

        self.assertEqual([x.val for x in bin.get_level(3)], [2, 4, 6, 9])