Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reverse method reverses elements of a queue

Tags:

java

This is not a HW or assignment. This is something i'm practicing myself.

Given a queue, write a Reverse method reverses elements of a queue. MyQueue remains unchanged.

Signature:

public Queue<T> reverse(Queue<T> myQueue) {

Note: It is unknown if the Queue is made using nodes or array.

The queue has methods already implemented, that we can use:

void enqueue(T element)
T dequeue();
boolean isFull();
boolean isEmpty();
int size();
like image 679
user2272227 Avatar asked May 31 '13 12:05

user2272227


People also ask

Can you reverse a queue in Java?

You can reverse a queue by using a stack. The append and serve methods of the queue are to add and remove elements of that queue.

Can we reverse a queue in C++?

We know that a queue is a FIFO structure, and random access of elements is not allowed, so it is not possible to reverse the queue in-place so we need another data structure in which we could store the elements of the queue in such a manner that while inserting the elements back to the queue the order of elements is ...


2 Answers

You can reverse a queue by using a stack.

Here's how in Java:

public void reverse(Queue q)
{
    Stack s = new Stack();  //create a stack

    //while the queue is not empty
    while(!q.isEmpty())
    {  //add the elements of the queue onto a stack
       s.push(q.serve());
    } 

    //while the stack is not empty
    while(!s.isEmpty())
    { //add the elements in the stack back to the queue
      q.append(s.pop());
    }

}

The append and serve methods of the queue are to add and remove elements of that queue.

Here's an example:

A queue has elements:

1 2 3 4

When the elements get added to a stack, the number 1 will be at the bottom of the list and 4 at the top:

1 2 3 4 <- top

Now pop the stack and put the elements back in the queue:

4 3 2 1

I hope this helped.

like image 178
Alicia Rodriguez Avatar answered Oct 17 '22 13:10

Alicia Rodriguez


  1. dequeue the elements of the input queue onto a stack
  2. pop the elements off the stack, enqueueing each into the output queue.
like image 32
Oswald Avatar answered Oct 17 '22 11:10

Oswald