Разлика между версии на „Опашка (абстрактен тип данни)“

м (Novocob премести „Потребител:Novocob/Опашка (програмиране)“ като „Опашка (програмиране)“: Старото заглавие беше чернова.)
== Статична реализация ==
[[Файл:QUEUE-STATIC.jpg|рамка|вдясно|Циклично движение на опашка в масив.]]
Статичната опашка се реализира с помощта на [[Масив (програмиране)|масив]]. В даден момент началото и краят на опашката сочат към определени индекси от масива. Когато се добавя нов елемент той се поставя на индекса след края на опашката и краят вече сочи към новия елемент. Когато се премахва началото на опашката, елементът на началния индекс се изтрива и началото започва да сочи към следващия индекс. По този начин с добавяне и извличане на елементи от опашката тя се движи към края на масива. В даден момент краят на опашката достига до последния индекс на масива и се оказва, че размерът на масива не е достатъчен въпреки, че опашката не запълва всичките му елементи. За да се реши този проблем при следващото добавяне на елемент в края на опашката, той се поставя на началния индекс на масива. По този начин се свързват началото и края на масива, и опашката може да обикаля безкрайно в него. В началото индексите за начало и край сочат нулевия елемент. В процеса, ако отново се окажат равни това може да означава две неща:<br />
:- ако равенството се е получило след премахване на елемент, опашката е останала празна.<br />
:- ако равенството се е получило след добавяне на елемент, то опашката е препълнена.<br />
В този случай дължината на опашката (броя на елементите в нея)е станала равна на предварително заделения брой на елементи и в масива няма да могат да бъдат добавяни нови елементи. Това налага копиране на опашката в нов масив с по-голям размер.
 
7

редакции