Implementing the Priority Queue abstract data type using two different data structures and using it to solve a practical problem in Java.
This exercise has two parts. The first involves implementing in Java the Priority Queue abstract data type using two different data structures. In the second part you are asked to use a Priority Queue to implement an algorithm for a practical problem. Note you are not allowed to rely on Java library classes in your implementation.