Esempio n. 1
0
 def test_delete_node(self):
     bst = BST()
     bst.insert_node(50, "node50")
     bst.insert_node(30, "node30")
     bst.insert_node(20, "node20")
     bst.insert_node(40, "node40")
     bst.insert_node(70, "node70")
     bst.insert_node(60, "node60")
     bst.insert_node(80, "node80")
     smallest = bst.smallest()
     self.assertTrue(smallest == 20)
     logging.debug("BST root: %s" % str(bst.to_list()))
     bst.delete_node(30)
     logging.debug("BST root: %s" % str(bst.to_list()))
     self.assertTrue(bst.root.left.value == 40)
     self.assertTrue(bst.root.left.left.value == 20)
     logging.debug("BST root: %s" % str(bst.to_list()))
     bst.delete_node(100)
     bst.delete_node(70)
     logging.debug("BST root: %s" % str(bst.to_list()))
     self.assertTrue(bst.root.right.value == 80)
     self.assertTrue(bst.root.right.left.value == 60)
     bst.delete_node(50)
     logging.debug("BST root: %s" % str(bst.to_list()))
     self.assertTrue(bst.root.value == 60)
     self.assertTrue(bst.root.left.value == 40)
     self.assertTrue(bst.root.right.value == 80)
Esempio n. 2
0
 def build_bst1(self) -> BST:
     bst = BST()
     bst.insert_node(5, "root")
     bst.insert_node(1, "node1")
     bst.insert_node(2, "node2")
     bst.insert_node(7, "node7")
     bst.insert_node(6, "node6")
     bst.insert_node(10, "node10")
     self.assertTrue(bst.root.value == 5)
     self.assertTrue(bst.root.left.value == 1)
     self.assertTrue(bst.root.left.right.value == 2)
     self.assertTrue(bst.root.right.value == 7)
     self.assertTrue(bst.root.right.left.value == 6)
     self.assertTrue(bst.root.right.right.value == 10)
     return bst
Esempio n. 3
0
 def build_bst0(self) -> BST:
     bst = BST()
     bst.insert_node(0, "root")
     bst.insert_node(1, "node1")
     bst.insert_node(2, "node2")
     bst.insert_node(3, "node3")
     self.assertTrue(bst.root.right.value == 1)
     self.assertTrue(bst.root.left == None)
     self.assertTrue(bst.root.right.right.value == 2)
     self.assertTrue(bst.root.right.left == None)
     self.assertTrue(bst.root.right.right.right.value == 3)
     self.assertTrue(bst.root.right.right.right.left == None)
     self.assertTrue(bst.root.right.right.right.right == None)
     return bst