A priority search queue efficiently supports the
operations of both a search tree and a priority queue. A
Binding is a product of a key and a priority. Bindings
can be inserted, deleted, modified and queried in
logarithmic time, and the binding with the least priority
can be retrieved in constant time. A queue can be built
from a list of bindings, sorted by keys, in linear time.