Стек работает по LIFO: последним пришёл — первым вышел. Очередь работает по FIFO: первым пришёл — первым вышел; их отличие прежде всего в правилах доступа, а не в обязательном формате хранения.
Чем структурно очередь отличается от стека?
Стек работает по LIFO: последним пришёл — первым вышел. Очередь работает по FIFO: первым пришёл — первым вышел; их отличие прежде всего в правилах доступа, а не в обязательном формате хранения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Стек работает по LIFO: последним пришёл — первым вышел. Очередь работает по FIFO: первым пришёл — первым вышел; их отличие прежде всего в правилах доступа, а не в обязательном формате хранения.
У стека добавление и удаление происходят с одного конца: push/pop. У очереди добавление выполняется в хвост, удаление — из головы: enqueue/dequeue.
Оба контейнера могут быть реализованы массивом или связанной структурой. Очередь на массиве часто использует кольцевой буфер, чтобы не сдвигать все элементы при удалении. Стек подходит для отмены действий и обхода в глубину, очередь — для обработки задач по порядку поступления.