Remarks: In all algorithm, always explain how and why they work.
If not by a proof, at least by a clear explanation. ALWAYS, analyze
the running time complexity of your algorithms. In all algorithms,
always try to get the fastest possible. A correct algorithm with
slow running time may not get full credit. Do not write a program.
Write pseudo codes or explain in words
Question 1: Say that we want to maintain both a Queue and a
Priority Queue. This means that when you do Enqueue you also add
the item to the Priority Queue and when you do Dequeue you also
remove the item from the Priority Queue. And vise-versa. Show how
to do it.