class EventQueue:
    """ Implemented as AVLTree instead of MinHeap. """

    def __init__(self):
        self.tree = AVLTree()
        self.size = 0

    def insert_event(self, event: Point) -> bool:
        res = self.tree.insert(event)
        if res:
            self.size += 1
        return res

    def get_nearest_event(self) -> Optional[Point]:
        return self.tree.min()

    def remove_event(self, event: Point) -> bool:
        res = self.tree.delete(event)
        if res:
            self.size -= 1
        return res
Пример #2
0
 def test_find_min(self):
     entries = get_random_entries()
     tree = AVLTree(entries)
     self.assertEqual(tree.min(), min(entries))