Suppose that we use a linked list to represent a queue and that in addition to the enqueue and dequeue functions add a new operation to the queue that deletes the last element of the queue. Which of the following linked structures do we need to use to guarantee that this operation is also executed in constant time?
1. Singly linked list with both front and rear pointer.
2. Singly circular linked list with front pointer only.
3. Singly circular linked list with rear pointer only.
4. Singly circular linked list with both front and rear pointer.
5. Doubly linked list with both front and rear pointer.
(a) 1,3 and 4 only
(b) 1, 3 and 5 only
(c) 1 and 2 only
(d) 3, 4 and 5 only