Я думаю, что ОП хотел знать, как с этим справиться, если у него есть только стеки, по какой-то непонятной причине. Хитрость заключается в том, что нужно помнить, что если положить вещи в стек, а затем вытащить их, обратный порядок элементов меняется, так что вы можете использовать два стека, чтобы перевернуть его дважды.
Входящие элементы помещаются в стек1 и все попадают в стек2, когда стек2 пуст. Таким образом, первый элемент помещается в stack1, сразу же извлекается и помещается в stack2, готовый к выводу. Последующие элементы складываются в стеке 1 до тех пор, пока стек 2 не будет извлечен, после чего последний элемент помещается в стек 2, затем следующий за последним и т. Д., Пока стек 1 снова не опустеет. Теперь все элементы пересортированы в стек2, причем самые новые находятся внизу, а самые старые - вверху. Новые толчки продолжают накапливаться в stack1, ожидая, пока stack2 снова станет пустым, и stack2 просто создает элементы в исходном порядке, пока не опустеет, после чего мы повторяем процесс unstack-restck.
Я не буду комментировать эффективность и т. Д .; это просто "вы могли бы сделать это таким образом". Меня спросили об этом в интервью, и мой немедленный ответ был: «Какой идиот будет делать это? Просто создайте реальную очередь и покончите с этим» - я не думаю, что это был ответ, который они ищем хоть.