def test_remove_left_child(self): tree = BST() tree.add_value(100) tree.add_value(80) tree.add_value(200) tree.add_value(90) tree.add_value(70) tree.remove_value(200) results = [] values = [] tree.inorder(results) for x in results: value = x.value values.append(value) self.assertEqual(values, [70, 80, 90, 100])
def test_remove_both_children(self): tree = BST() tree.add_value(100) tree.add_value(80) tree.add_value(200) tree.add_value(90) tree.add_value(95) tree.add_value(70) tree.add_value(75) tree.add_value(150) tree.remove_value(80) results = [] values = [] tree.inorder(results) for x in results: value = x.value values.append(value) self.assertEqual(values, [70, 75, 90, 95, 100, 150, 200])
#for donor in donors: # print (donor) tree = BST(key=lambda x: x.amount) results = [] for donor in donors: tree.add_value (donor) if cmd == 'rich': print (tree.get_max_node().value) elif cmd == 'cheap': print (tree.get_min_node().value) elif cmd == 'all': tree.inorder(results) for x in results: print (x.value) elif cmd == 'list_above': tree.inorder(results) no_match = True for x in results: if x.value.amount >= amount: print (x.value) no_match = False break if no_match: print ("No Match") elif cmd == 'list_below': tree.inorder(results)
a.left = b b.left = c c.right = d b.right = e print ( "create tree with 5 nodes") tree = BST(a) print ("len ex 5: ", len(tree)) print ("add node", tree.add_value(100)) print ("len ex 6: ", len(tree)) print ("remove node", tree.remove_value(50)) print ("len ex 5: ", len(tree)) results = [] tree.inorder(results) for x in results: print (x.value) print ("\n Testing adding children") a = BSTNode(50) b = BSTNode(40) c = BSTNode(35) d = BSTNode(37) e = BSTNode(45) f = BSTNode(90) g = BSTNode(150) a.left = b b.left = c c.right = d