17-3. Priority Queue

In a standard queue described in the previous section, elements are managed on a First-In, First-Out basis, where they are added to the back and removed from the front.

However, a priority queue assigns priority levels to its elements. When accessing elements, those with the highest priority are dealt with first, reflecting a largest-in, first-out behavior. For instance, in a hospital's emergency room, in a hospital's emergency room, patients are prioritized with numbers, ensuring that the most urgent cases receive immediate attention.

  • How it works?

The item with the highest priority is positioned at the forefront to be served first.

 

  • Priority Queue Implementation

Using a List:

Let's suppose that 4 represents the highest priority, while 1 signifies the lowest priority.

Output:

Size of queue: 4

Is queue empty? False

Dequeue: (4, 'Jane')

Dequeue: (3, 'Tom')

Dequeue: (2, 'John')

Dequeue: (1, 'Kelly')

Is queue empty? True

Using a heapq:

Let's suppose that 4 represents the highest priority, while 1 signifies the lowest priority.

Output:

Size of queue: 4    

Is queue empty? False

Dequeue: Jane       

Dequeue: Tom

Dequeue: John       

Dequeue: Kelly      

Is queue empty? True

 

Using a PriorityQueue:

In this scenario, let's designate 4 as the highest priority and 1 as the lowest priority.

Output:

Size of queue: 4

Is queue empty? False

Dequeue: Jane

Dequeue: Tom

Dequeue: John

Dequeue: Kelly

Is queue empty? True