For this , you will write a computer program to implement an Abstract Data Type called Priority Queue. A priority queue is like a regular queue, but each element has a "priority" associated with it. In a priority queue, an element with high priority is served before an element with low priority. If two elements have the same priority, they are served according to their enqueue order in the queue.
Regardless the underlying representations (array, a linked list) your Priority Queue Class should allow any programmer to store any element (data) without understand or knowing the details of the underlying representation.
1. enqueue(element, priority, queue): add an element into the queue at the appropriate position in the queue based on the associated priority. If the priority parameter is missing, assign to the element 5 as default priority, which is the lowest priority.
2. deque(queue): remove the element with the highest priority from the queue. If two elements have the same priority, they are served according to their order in the queue.