def test_find():
    tree = BinarySearchTree()

    tree.insert(15)
    tree.insert(10)
    tree.insert(3)
    tree.insert(11)

    found = tree.find(3)
    assert found.value == 3

    found = tree.find(100)
    assert found is None
def test_insert():
    tree = BinarySearchTree()

    tree.insert(15)
    assert tree.root.value == 15

    tree.insert(10)
    assert tree.root.left.value == 10

    tree.insert(3)
    assert tree.root.left.left.value == 3

    tree.insert(11)
    assert tree.root.left.right.value == 11
def test_insert():
    bst = BinarySearchTree()
    bst.insert(4)
    bst.insert(10)
    bst.insert(1)
    assert bst.root.data == 4
    assert bst.root.left.data == 1
    assert bst.root.right.data == 10
Пример #4
0
    def test_insert_list_delete_left(self):
        # insert, list
        bst = BinarySearchTree(self.BinarySearchNode)
        lst = [random.randint(0, 99) for value in range(1000)]
        for value in lst:
            bst.insert(value)
        self.assertEqual(bst.list(), sorted(lst))

        # delete_left
        random.shuffle(lst)
        for value in lst:
            bst.delete_left(value)
        self.assertEqual(bst.list(), [])
Пример #5
0
from random import randint
from random import shuffle
from tree.binary_search_tree import BinarySearchTree
# from tree.binary_search_tree.recursive import BinarySearchNode
# from tree.binary_search_tree.sequencial import BinarySearchNode
from tree.binary_search_tree.parental import BinarySearchNode

bst = BinarySearchTree(BinarySearchNode)

#
# 1) Insert
#
lst = [randint(1, 5) for _ in range(10)]
for i in lst:
    bst.insert(i)
    print()
    print('# insert', i)
    print(bst)
    print(bst.list())

#
# 2) Delete
#
shuffle(lst)
for i in lst:
    # bst.delete_left(i)
    bst.delete_right(i)
    print()
    print('# delete', i)
    print(bst)
    print(list(bst))
Пример #6
0
from tree.binary_search_tree import Node, BinarySearchTree

new_tree = BinarySearchTree()
new_tree.insert('E', 'E')

new_tree.insert('B', 'B')

new_tree.insert('G', 'G')
new_tree.insert('A', 'A')
new_tree.insert('D', 'D')
new_tree.insert('F', 'F')
new_tree.insert('H', 'H')
new_tree.insert('C', 'C')

print(new_tree.size())

# print(new_tree.get(2))

# print(new_tree.delete(10))
print(new_tree.size())
# print(new_tree.get(10))
print(new_tree.min())
print(new_tree.max())
print('--------------')
keys_que = new_tree.pre_ergodic()
for i in keys_que:
    print(i.item.value)

print('==============')
keys_que = new_tree.mid_ergodic()
for i in keys_que:
Пример #7
0
def test_bfs():
    tree = BinarySearchTree()
    tree.insert(10)
    tree.insert(15)
    tree.insert(20)
    tree.insert(40)
    tree.insert(16)
    tree.insert(3)
    tree.insert(2)
    tree.insert(1)
    tree.insert(5)
    tree.insert(11)
    values = bfs_walk(tree)
    assert values == [10, 3, 15, 2, 5, 11, 20, 1, 16, 40]
def test_instantiation():
    assert BinarySearchTree()
def bst():
    b = BinarySearchTree()
    b.insert_list([10, 5, 17, 3, 7, 12, 19, 1, 4, 13])
    return b
def test_insert_list():
    bst = BinarySearchTree()
    bst.insert_list([10, 5, 17])
    assert bst.root.data == 10
    assert bst.root.left.data == 5
    assert bst.root.right.data == 17