Стек и очередь

Anonim

Оба стека и очереди определяются последовательным набором объектов, организованных в определенном порядке в структуре данных на основе некоторых реальных эквивалентов. Оба являются линейными структурами данных, используемыми для эффективного хранения и извлечения элементов данных, за исключением принципа работы. Стек представляет собой упорядоченный список элементов, где все вставки и удаления выполняются с одного конца, тогда как очередь в точности противоположна стеку, который открыт на обоих концах, что означает, что один конец используется для вставки данных, а другой для удаления данные. Основное различие между ними - их рабочий механизм.

Что такое стек?

Стек представляет собой линейную структуру данных, используемую для организации данных определенным образом, чтобы их можно было эффективно использовать. Машины нуждаются в направлениях для выполнения задач как простых, так и сложных в виде команд. Аналогичным образом, данные могут быть структурированы по-разному, и одна из наиболее эффективных структур данных - это стеки. Это абстрактная структура данных, которая похожа на физический стек, где объекты организованы в определенном порядке, в частности, на основе механизма «последний в первом» (LIFO), который означает, что последний добавленный элемент должен быть обращен первым и наоборот, Наиболее распространенным применением структуры данных стека является обратное отслеживание или алгоритм поиска по глубине.

Что такое очередь?

Очередь также представляет собой линейную структуру данных, несколько похожую на структуру данных стека, за исключением того, что она открыта на обоих концах. Это последовательный набор объектов, которые напоминают очередь людей. В отличие от стеков, он основан на принципе first-in-first-out (FIFO), означающем, что самый ранний добавленный элемент можно получить первым и наоборот. В очереди один конец используется для вставки элементов, а другой - для удаления элементов. Как линия людей, новые объекты помещаются сзади, а уже обслуживаемые объекты удаляются с фронта. В очереди допускаются две операции: enqueue и dequeue. Enqueue относится к добавлению предметов сзади, а dequeue означает удаление предметов спереди.

Разница между стеком и очередью

Значение стека и очереди

Stack - это базовая структура данных, абстрактный тип данных, представленный линейной структурой, похожей на физический стек, где объект может быть добавлен в любое время, но может быть удален, который добавляется последним. Проще говоря, вставка и удаление объектов в структуре данных стека происходит на одном конце, который является вершиной стека. Очередь несколько похожа на стеки, за исключением того, что она открыта на обоих концах - один конец для вставки объекта, а другой - для удаления объекта, означающего, что объекты, которые хранятся вначале, могут быть доступны в первую очередь.

Принцип работы в стеке и очереди

Оба стека и очереди являются непримитивными абстрактными типами данных в структуре данных, которые служили набором объектов, в которых объекты хранятся в определенном порядке. Стек представляет собой контейнер объектов, в которых объекты хранятся и удаляются на основе принципа работы «последний в первом» (LIFO), что означает, что объекты могут храниться и извлекаться одновременно. С другой стороны, очередь представляет собой набор объектов, в которых объекты хранятся и удаляются в соответствии с принципом «первый в первом» (FIFO).

Структура стека и очереди

Столбец имен относится к аналогии структуры, в которой элементы размещаются друг над другом подобно стеку, например, пакет печенья. Один конец используется для размещения и удаления объектов из стека, что позволяет легко выбрать объект сверху, одновременно затрудняя доступ к последнему объекту, который требует удаления нескольких элементов один за другим, начиная с вершины. Очередь противоположна стекам, что означает, что новые объекты размещаются сзади и удаляются с фронта так же, как книга.

операции

Существует две основные операции, которые могут выполняться на стеках: push, который в основном добавляет элемент в стек, и если стек заполнен, то это условие переполнения и pop, которое удаляет последний элемент из стека и пустой стек, относится к условию Underflow. Существует дополнительная операция подсмотра, связанная со стеками, которая позволяет вам получить доступ к элементу сверху без изменения стека. Два основных принципа связаны с очередью: enqueue, что означает добавление объектов в тыл, и dequeue, что относится к удалению объектов с фронта.

Приложения стека и очереди

Одним из наиболее важных применений структуры данных стека является алгоритм поиска по глубине, основанный на идее обратного отслеживания, в основном используемой для поиска структуры диаграммы или дерева. Он также может использоваться для компилятора / операционной системы для обработки вызовов функций или для реализации рекурсивных функций. Наиболее распространенным приложением структуры данных очереди является планирование ЦП или планирование диска или исследование операций. Пример реальной жизни структуры данных очереди - это очередь людей, где сначала должен стоять человек, стоящий первым в строке.

Сравнение стека с очередью: сравнительная таблица

Резюме стека против очереди

Оба стека и очереди - это не примитивные абстрактные структуры данных, определенные как совокупность объектов, организованных в определенном порядке на компьютере, но с разными рабочими принципами. Хотя оба относятся к организации и хранению данных, они делают это по-разному.Stack - это базовая структура данных, основанная на принципе LIFO, также называемом последним в первом, что означает, что элемент, добавленный последним, должен быть первым, или FILO означает, что первый элемент в списке должен быть последним. Напротив, очередь основана на принципе FIFI (first-in-first-out), означающем, что самый ранний элемент должен быть доступен в первую очередь.