Първо, ще разгледаме какво е стек и какво е опашка индивидуално и след това ще обсъдим разликите между стека и опашката.
Какво е стек?
Структура от данни. В случай на масив е възможен произволен достъп, т.е. всеки елемент от масив може да бъде достъпен по всяко време, докато в стека е възможен само последователен достъп. Това е контейнер, който следва правилото за вмъкване и изтриване. Следва принципа LIFO (последен влязъл първи излязъл) в който вмъкването и изтриването се извършва от едната страна, известна като a Горна част . В стека можем да вмъкнем елементи от подобен тип данни, т.е. елементите от различен тип данни не могат да бъдат вмъкнати в един и същ стек. Двете операции се извършват в LIFO, т.е. тласък и поп операция.
Следните са операциите, които могат да се извършват върху стека:
В стека, на Горна част е указател, който се използва за проследяване на последния вмъкнат елемент. За да реализираме стека, трябва да знаем размера на стека. Трябва да разпределим паметта, за да получим размера на стека. Има два начина за внедряване на стека:
Какво е опашката?
А
Прилики между стек и опашка.
Има две прилики между стека и опашката:
Както стекът, така и опашката са линейна структура от данни, което означава, че елементите се съхраняват последователно и достъпът до тях се извършва с едно изпълнение.
Както стекът, така и опашката са гъвкави по размер, което означава, че могат да растат и да се свиват според изискванията по време на изпълнение.
Разлики между стек и опашка
Следните са разликите между стека и опашката:
База за сравнение | Стек | Опашка |
---|---|---|
Принцип | Той следва принципа LIFO (Last In- First Out), което предполага, че елементът, който е вмъкнат последен, ще бъде първият, който ще бъде изтрит. | Той следва принципа FIFO (First In - First Out), което предполага, че елементът, който е добавен първи, ще бъде първият елемент, който ще бъде премахнат от списъка. |
Структура | Той има само един край, от който се извършва както вмъкването, така и изтриването, и този край е известен като връх. | Има два края, т.е. преден и заден край. Предният край се използва за изтриване, докато задният край се използва за вмъкване. |
Брой използвани указатели | Той съдържа само един указател, известен като горен указател. Горният показалец съдържа адреса на последния вмъкнат или най-горния елемент от стека. | Съдържа два указателя, преден и заден указател. Предният показалец съдържа адреса на първия елемент, докато задният показалец съдържа адреса на последния елемент в опашката. |
Извършени операции | Извършва две операции, бутане и пукане. Операцията push вмъква елемента в списък, докато операцията pop премахва елемента от списъка. | Той изпълнява основно две операции, поставяне в опашка и изваждане от опашка. Операцията за поставяне на опашка извършва вмъкването на елементите в опашката, докато операцията за премахване на опашката извършва изтриването на елементите от опашката. |
Проверка на празното състояние | Ако top==-1, това означава, че стекът е празен. | Ако front== -1 или front = rear+1, това означава, че опашката е празна. |
Оглед на пълно състояние | Ако top== max-1, това условие предполага, че стекът е пълен. | Ако rear==max-1, това условие предполага, че стекът е пълен. |
Варианти | Няма никакви видове. | Тя е от три вида като опашка с приоритет, кръгова опашка и опашка с двоен край. |
Внедряване | Има по-проста реализация. | Има сравнително сложно изпълнение от стека. |
Визуализация | Стекът се визуализира като вертикална колекция. | Опашката се визуализира като хоризонтална колекция. |