A priority queue makes it possible to extend the concept of a queue by setting priority for each element in the queue. It is worth mentioning that the priority can be specified simply as an integer value. However, it depends on the implementation whether smaller or greater values indicate higher priority. Within this chapter, it is assumed that the highest priority is equal to 0, while lower priority is specified by 1, 2, 3, and so on. Thus, the dequeue operation will return the element with the highest priority, which has been added first to the queue, as shown in the following diagram:
Let's analyze the diagram. First, the priority queue contains two elements with the same priority (equal to 1), namely Marcin and Lily. Then, the Mary element is added with higher priority (0), which means that this element is placed at the beginning of the queue, that...