import java.util.LinkedList;
import java.util.Stack;
import java.util.Queue;
public class MyClass {
static Queue<Integer> queue;
static void reverseQueueFirstNElements(int n) {
if (queue.isEmpty() == true || n > queue.size() || n <= 0)
return;
Stack<Integer> stack = new Stack<Integer>();
for (int i = 0; i < n; i++) {
stack.push(queue.peek());
queue.remove();
}
while (!stack.empty()) {
queue.add(stack.peek());
stack.pop();
}
for (int i = 0; i < queue.size() - n; i++) {
queue.add(queue.peek());
queue.remove();
}
}
public static void main(String args[]) {
queue = new LinkedList<Integer>();
for (int i = 0; i < 10; i++)
queue.add(i);
System.out.println(queue);
reverseQueueFirstNElements(5);
System.out.println(queue);
}
}
/*
run:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[4, 3, 2, 1, 0, 5, 6, 7, 8, 9]
*/