package stack;

import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;

public class QueueReversal {
    public static <T extends Object> Queue<T> reverse(Queue<T> q){
        Stack<T> stack = new Stack<T>();
        while (!q.isEmpty())
            stack.add(q.remove());
        while (!stack.isEmpty())
            q.add(stack.pop());

        return q;
    }
    public static void main(String[] args) {
        Queue<Object> q = new LinkedList<Object>();
        q.add(1);
        q.add(2);
        q.add(3);
        q.add(4);
        q.add(5);
        
        System.out.println(q);
        
        System.out.println(reverse(q));
    }
}
