Example #1
0
    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)
Example #4
0
    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