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

м
замяна с n-тире
м (Бот: Козметични промени)
м (замяна с n-тире)
== Динамична реализация ==
[[Файл:QUEUE-DYNAMIC.jpg|рамка|дясно]]
При динамичната реализация на опашката елементите не се намират в последователни адреси на паметта, както е при реализацията с масиви. При динамичните структури всеки елемент от опашката съдържа две части - обект и указател към следващия елемент. По този начин се образува свързан списък. Известен е адресът на първия елемент в опашката, а адресите на всички останали елементи не са достъпни директно. Достъпът до тях се осъществява като се премине през указателите на всички предшестващи елементи. Последния елемент в опашката има указател, който не сочи към друг елемент, докато не се добави нов елемент накрая. Тогава указателят на елемента, който досега е бил последен започва да сочи към новия елемент. Указателят на новия елемент не сочи към елемент, докато не бъде добавен нов елемент и т.н. В началото на опашката е елементът, който вече може да бъде извлечен. Към този елемент няма насочен указател.
 
Съществува и вариант, при който указателите на елементите сочат и към предишния, и към следващия елемент на опашката(когато съществуват такива). Тогава списъкът е двойно свързан (или двусвързан). Така опашката може при нужда да бъде обхождана и в двете посоки.
* Създаване на празна опашка – опашка която не съдържа елементи.
* Проверка дали опашката е празна
* Добавяне на елемент - само след края на опашката.
* Отстраняване на елемент - само от началото (ако опашката не е празна).
* Достъп до елемент - възможен е достъп само до началото на опашката (ако не е празна).
 
== Примери за използване на опашка ==
Queue<int> numbersQueue = new Queue<int>(); // инициализация на опашка
 
// Пример1 - Добавяне и извличане на елементи от опашка
for (int i = 0; i < 10; i++)
{