logo

Стек срещу опашка

Първо, ще разгледаме какво е стек и какво е опашка индивидуално и след това ще обсъдим разликите между стека и опашката.

Какво е стек?

Структура от данни. В случай на масив е възможен произволен достъп, т.е. всеки елемент от масив може да бъде достъпен по всяко време, докато в стека е възможен само последователен достъп. Това е контейнер, който следва правилото за вмъкване и изтриване. Следва принципа LIFO (последен влязъл първи излязъл) в който вмъкването и изтриването се извършва от едната страна, известна като a Горна част . В стека можем да вмъкнем елементи от подобен тип данни, т.е. елементите от различен тип данни не могат да бъдат вмъкнати в един и същ стек. Двете операции се извършват в LIFO, т.е. тласък и поп операция.

Стек срещу опашка

Следните са операциите, които могат да се извършват върху стека:

    натиснете (x):Това е операция, при която елементите се вмъкват в горната част на стека. В тласък трябва да предадем елемент, който искаме да вмъкнем в стека.поп():Това е операция, при която елементите се изтриват от върха на стека. В поп () функция, не трябва да подаваме аргумент.peek()/top():Тази функция връща стойността на най-горния наличен елемент в стека. Подобно на pop(), той връща стойността на най-горния елемент, но не премахва този елемент от стека.празно е():Ако стекът е празен, тогава тази функция ще върне истинска стойност или в противен случай ще върне невярна стойност.е пълен():Ако стекът е пълен, тогава тази функция ще върне истинска стойност или в противен случай ще върне невярна стойност.

В стека, на Горна част е указател, който се използва за проследяване на последния вмъкнат елемент. За да реализираме стека, трябва да знаем размера на стека. Трябва да разпределим паметта, за да получим размера на стека. Има два начина за внедряване на стека:

    Статично:Статичното изпълнение на стека може да се извърши с помощта на масиви.Динамичен:Динамичното внедряване на стека може да се извърши с помощта на свързан списък.

Какво е опашката?

А

Прилики между стек и опашка.

Има две прилики между стека и опашката:

    Линейна структура на данните
    Както стекът, така и опашката са линейна структура от данни, което означава, че елементите се съхраняват последователно и достъпът до тях се извършва с едно изпълнение.Гъвкав по размер
    Както стекът, така и опашката са гъвкави по размер, което означава, че могат да растат и да се свиват според изискванията по време на изпълнение.

Разлики между стек и опашка

Стек срещу опашка

Следните са разликите между стека и опашката:

База за сравнение Стек Опашка
Принцип Той следва принципа 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, това условие предполага, че стекът е пълен.
Варианти Няма никакви видове. Тя е от три вида като опашка с приоритет, кръгова опашка и опашка с двоен край.
Внедряване Има по-проста реализация. Има сравнително сложно изпълнение от стека.
Визуализация Стекът се визуализира като вертикална колекция. Опашката се визуализира като хоризонтална колекция.