graphid.util.priority_queue module¶
- class graphid.util.priority_queue.PriorityQueue(items=None, ascending=True)[source]¶
Bases:
NiceRepr
abstracted priority queue for our needs
Combines properties of dicts and heaps Uses a heap for fast minimum/maximum value search Uses a dict for fast read only operations
References
http://code.activestate.com/recipes/522995-priority-dict-a-priority-queue-with-updatable-prio/ https://stackoverflow.com/questions/33024215/built-in-max-heap-api-in-python
Example
>>> items = dict(a=42, b=29, c=40, d=95, e=10) >>> self = PriorityQueue(items) >>> print(self) >>> assert len(self) == 5 >>> print(self.pop()) >>> assert len(self) == 4 >>> print(self.pop()) >>> assert len(self) == 3 >>> print(self.pop()) >>> print(self.pop()) >>> print(self.pop()) >>> assert len(self) == 0
Example
>>> items = dict(a=(1.0, (2, 3)), b=(1.0, (1, 2)), c=(.9, (3, 2))) >>> self = PriorityQueue(items)