1. Implement a priority queue based on a sorted linked list. The remove operation on the priority queue should remove the item with the smallest key.
2. Implement a deque based on a doubly linked list. (See Programming Project 4.2 in the preceding chapter.) The user should be able to carry out the normal operations on the deque.