def test_delete(self):
     var = globalVar() #Contains variables for tree insertion 
     bTree = BinaryTree()
     bTree.insert(value= var.p1)
     bTree.insert(value= var.p2)
     bTree.insert(value= var.p3)
     self.assertEqual(bTree.find(var.p3).value, var.p3)
     bTree.delete(var.p3)
     with self.assertRaises(Exception): 
         bTree.find(var.p3).value#Looking for deleted element
Beispiel #2
0
    def test_features(self):
        bt = BinaryTree(10)
        bt.add(6)
        bt.add(18)
        bt.add(4)
        bt.add(8)
        bt.add(15)
        bt.add(21)

        self.assertEqual(bt.count(), 7)
        self.assertEqual(bt.min(), 4)
        self.assertEqual(bt.max(), 21)
        self.assertEqual(bt.has(8), True)
        self.assertEqual(bt.has(11), False)
        self.assertNotEqual(bt.find(15), None)
        self.assertEqual(bt.find(11), None)
        bt.delete(10)
        self.assertEqual(bt.root.data, 15)
        self.assertEqual(bt.find(10), None)
        self.assertEqual(bt.count(), 6)
        self.assertEqual([x for x in bt.items()], [4, 6, 8, 15, 18, 21])
        self.assertEqual([x for x in bt.items('pre')], [15, 6, 4, 8, 18, 21])
        self.assertEqual([x for x in bt.items('pos')], [4, 8, 6, 21, 18, 15])
        self.assertEqual([x for x in bt.items('lev')], [15, 6, 18, 4, 8, 21])
Beispiel #3
0
class DB(object):
    def __init__(self, f):
        self.storage = Storage(f)
        self.tree = BinaryTree(self.storage)

    def assert_not_closed(self):
        if self.storage.closed:
            print("db closed")
            raise ValueError("db closed")

    def close(self):
        self.storage.close()

    def update(self):
        self.assert_not_closed()
        self.tree.update()

    def __getitem__(self, key):
        self.assert_not_closed()
        return self.tree.get(key)

    def __setitem__(self, key, value):
        self.assert_not_closed()
        return self.tree.set(key, value)

    def __delitem__(self, key):
        self.assert_not_closed()
        return self.tree.delete(key)

    def __contains__(self, key):
        self.assert_not_closed()
        try:
            self[key]
        except KeyError:
            return False
        else:
            return True

    def __len__(self):
        return len(self.tree)

    def listAll(self):
        return self.tree.listAll()
Beispiel #4
0
from binarytree import BinaryTree
from node import Node

tree = BinaryTree(Node(6))

nodes = [5, 3, 9, 7, 8, 7.5, 12, 11]

[tree.add(Node(n)) for n in nodes]

tree.delete(9)
tree.inorder()

Beispiel #5
0
from binarytree import BinaryTree
from collections import namedtuple

Person = namedtuple('Person', 'etternavn fornavn adresse postnr area')
p1 = Person('KRISTIANSEN', 'MORTEN KRISTIAN', 'LEINAHYTTA 36', '7224',
            'MELHUS')
p2 = Person('STAVANG', 'ELISABETH', 'ESPENES 116', '4684', 'BYGLAND')
p3 = Person('SYVERSEN', 'HARISHANKAR', 'SISIKVEIEN 84', '1390', 'VOLLEN')
p4 = Person('TYRIBERGET', 'EDWARD J.', 'HALLAND JOHAN 66', '5649',
            'EIKELANDSOSEN')
p5 = Person('AASE', 'TRINE', 'LEINAHYTTA 360', '7200', 'ROGNE')

bTree = BinaryTree()
bTree.insert(value=p1)
bTree.insert(value=p2)
bTree.insert(value=p3)
bTree.insert(value=p4)
bTree.insert(value=p5)
print(bTree.delete(Person('KRISTIANSEN')).value)
#print(bTree.find(p2).value)
#print(bTree.find(p2).value)
#print(bTree.findMin().value)
#print(bTree._root.value)
#print(bTree.find(p1).value)