The priority queue data structure