Стек срещу опашка
Стекът е подреден списък, в който вмъкването и изтриването на елементи от списъка може да се извърши само в единия край, наречен отгоре. Поради тази причина стекът се счита за структура на данните Last in First out (LIFO). Опашката също е подреден списък, в който вмъкването на елементи от списъка се извършва в единия край, наречен заден, а изтриването на елементи се извършва в другия край, наречен отпред. Този механизъм за вмъкване и изтриване прави опашката структура от данни First in First out (FIFO).
Какво е Stack?
Както бе споменато по-рано, стекът е структура от данни, в която елементи се добавят и премахват само от единия край, наречен отгоре. Стековете позволяват само две основни операции, наречени push и pop. Операцията за натискане добавя нов елемент в горната част на стека. Поп операцията премахва елемент от горната част на стека. Ако стекът вече е пълен, когато се изпълнява операция за натискане, той се счита за препълване на стека. Ако изскачаща операция се изпълнява върху вече празен стек, тя се счита за преливане на стека. Поради малкия брой операции, които могат да бъдат изпълнени върху стека, той се счита за ограничена структура на данните. Освен това, според начина, по който са дефинирани операциите за натискане и изскачане, е ясно, че елементи, които са били добавени последни в стека, излизат първи от стека. Следователно стекът се счита за структура на данни LIFO.
Какво е Queue?
В опашката елементи се добавят от задната страна на опашката и се отстраняват от предната страна на опашката. Тъй като елементите, които се добавят първи, първо ще бъдат премахнати от опашката, той поддържа реда на FIFO. Поради този ред на добавяне и премахване на елементи, опашката представлява идеята за ред за плащане. Общите операции, поддържани от опашка, са операции на опашки и на опашки. Операцията En-queue ще добави елемент в задната част на опашката, докато операцията de-queue премахва елемент от предната страна на опашката. По принцип опашките нямат ограничение за броя на елементите, които могат да бъдат добавени към опашката освен ограниченията на паметта.
Каква е разликата между стека и опашката?
Въпреки че стековете и опашките са вид подредени списъци, те имат някои важни разлики. В стековете добавянето или изтриването на елементи може да се извършва само от единия край, наречен отгоре, докато в опашките добавянето на елементи се извършва от единия край, наречен заден, а изтриването на елементи се извършва от другия край, наречен отпред. В стека елементите, които се добавят последни в стека, ще бъдат премахнати първо от стека. Следователно стекът се счита за структура на данни LIFO. В опашките елементите, които се добавят първи, първо ще бъдат премахнати от опашката. Следователно опашката се счита за структура на данни на FIFO.
Свързана връзка:
Разлика между стека и купчината