Чтобы реализовать стек с помощью очереди, вы можете использовать следующие методы:
-
Метод 1. Операция push является дорогостоящей
В этом методе операция push становится дорогостоящей, а операция pop — эффективной.- Используйте две очереди, назовем их «очередь1» и «очередь2».
- Для операции push поставьте новый элемент в очередь очереди2.
- Перенести все элементы из очереди 1 в очередь 2.
- Поменяйте местами имена очереди1 и очереди2.
- Таким образом, вновь добавленный элемент окажется в начале очереди, имитируя поведение стека.
-
Метод 2: операция извлечения является дорогостоящей
В этом методе операция извлечения становится дорогостоящей, а операция отправки — эффективной.- Используйте две очереди, назовем их «очередь1» и «очередь2».
- Для операции push поставьте новый элемент в очередь 1.
- Для операции извлечения перенесите все элементы, кроме последнего, из очереди1 в очередь2.
- Извлеките последний элемент из очереди 1, что фактически удалит верхний элемент стека.