I am trying to write a recursive method to reverse all elements in a queue.
In an abstract class myQueue which implements Queue< T > interface is my reverse method:
public void reverse() {
T temp = dequeue();
Queue<T> bufferQueue = new Queue<T>();
if(!(temp == null)){
bufferQueue.enqueue(temp);
}
if(!(isEmpty())) {
reverse();
}else{
while(!(bufferQueue.isEmpty())){
Queue.enqueue(bufferQueue.dequeue);
}
}
}
The interface Queue< T > has the following methods which are complete(and implicitly do as defined):
public boolean isEmpty();
public int size();
public void enqueue(T e);
public T dequeue();
public T front();
My goal:
In my reverse method, I am aiming to constantly dequeue (remove first element) from my Original Queue recursively till my queue is empty. Every time I dequeue I will place that object in a temporary Queue. When my queue is empty, than I do enqueue from my temp queue back in to my original Queue.
My first problem is defining a new temporary queue, in my case bufferQueue. I get the following:
1. ERROR at solution.java (at line 12)
Queue<T> bufferQueue = new Queue<T>();
^^^^^
Cannot instantiate the type Queue<T>