Поскольку у вас нет отрицательных чисел в очереди, я подумал сделать следующее:
1. вставить отрицательное число в первую очередь (метод «фиктивный»).
2. Найти минимальное число в первой очереди, пока вы не нажмете на пустышку.
3. Удалите пустышку.
4. Найдите в очереди минимальное значение, которое вы нашли на шаге 2, удалите его и вставьте во вторую очередь.
5. Выполняйте эти 4 шага, пока первая очередь не станет пустой.
Java код:
static void sort(Queue<Integer> q1) {
Queue<Integer> q2 = new Queue<Integer>();
int min=Integer.MAX_VALUE;
while (!q1.isEmpty())
{
q1.insert(-1);
while(q1.head() != -1)
{
if (q1.head() < min)
{
min=q1.head();
}
q1.insert(q1.remove());
}
q1.remove(); //removing the -1
while (q1.head() != min)
{
q1.insert(q1.remove());
}
min = Integer.MAX_VALUE;
q2.insert(q1.remove()); //inserting the minimum to the second queue.
}
System.out.println(q2);
}