Стек против Очереди
Стек - это упорядоченный список, в котором вставка и удаление элементов списка могут выполняться только в одном конце, называемом верхом. По этой причине стек рассматривается как структура данных «Последний пришел первым - вышел» (LIFO). Очередь также представляет собой упорядоченный список, в котором вставка элементов списка выполняется на одном конце, называемом задним, а удаление элементов - на другом конце, называемом фронтальным. Этот механизм вставки и удаления делает очередь структурой данных «первым пришел - первым обслужен» (FIFO).
Что такое стек?
Как упоминалось ранее, стек - это структура данных, в которой элементы добавляются и удаляются только с одного конца, называемого верхом. Стеки допускают только две основные операции, называемые push и pop. Операция push добавляет новый элемент на вершину стека. Операция pop удаляет элемент из верхней части стека. Если стек уже заполнен, при выполнении операции push это считается переполнением стека. Если операция pop выполняется над уже пустым стеком, это рассматривается как потеря значения стека. Из-за небольшого количества операций, которые могут быть выполнены в стеке, это рассматривается как ограниченная структура данных. Кроме того, в соответствии с тем, как определяются операции push и pop, ясно, что элементы, которые были добавлены последними в стек, сначала выходят из стека. Поэтому стек рассматривается как структура данных LIFO.
Что такое очередь?
В очереди элементы добавляются из задней части очереди и удаляются из передней части очереди. Поскольку элементы, которые добавляются первыми, будут сначала удалены из очереди, он поддерживает порядок FIFO. Благодаря такому порядку добавления и удаления элементов очередь представляет идею строки оформления заказа. Общие операции, поддерживаемые очередью, включают операции очереди и удаления очереди. Операция en-queue добавит элемент в конец очереди, в то время как операция de-queue удалит элемент из передней части очереди. В общем, очереди не имеют ограничения на количество элементов, которые могут быть добавлены в очередь, кроме ограничений памяти.
В чем разница между стеком и очередью?
Хотя и стеки, и очереди являются упорядоченными списками, они имеют некоторые важные различия. В стеках добавление или удаление элементов может выполняться только с одного конца, называемого верхним, в то время как в очередях добавление элементов выполняется с одного конца, называемого задним, а удаление элементов - с другого конца, называемого передним. В стеке элементы, добавленные последними в стек, будут удалены первыми из стека. Поэтому стек рассматривается как структура данных LIFO. В очередях элементы, которые добавляются первыми, сначала удаляются из очереди. Поэтому очередь рассматривается как структура данных FIFO..
Ссылка по теме:
Разница между стеком и кучей