Reverse method reverses elements of a queue

前端 未结 4 1082
死守一世寂寞
死守一世寂寞 2021-01-12 15:07

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 unchan

4条回答
  •  南方客
    南方客 (楼主)
    2021-01-12 15:35

    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.

提交回复
热议问题