Рис. 2.9. Графическое представление очереди Объявление пустой очереди
#define Maxg 5
float git[Maxg];
frnt=l; rear=0;
Игнорируя возможность переполнения очереди, операцию insert(g, x) запишем следующим образом:
геаг++; git[rear] = х; ,
а операцию х = remove(g) так:
x = git[frnt;
frnt++; .
На рис. 2.10 показано, что произойдет при таком представлении.
git | git | git | git | |||||
5 4 3 2 | 5 4 3 2 1 | 5 4 3 2 1 | с | 5 4 3 2 1 | e d с | |||
с | ||||||||
b a | ||||||||
frnt= rear= | 1 rear= 0 frnt= | 3 frnt= 1 rear= | 1 rear= 3 frnt=: | 5 3 |
Рис. 2.10. Элементы в очереди
Изначально очередь пуста. Размер массива git будет 5. В результате выполнения операции insert и remove в очереди будут находиться три элемента. Больше поместить нельзя.
Одним из решений этой проблемы является модификация операции remove таким образом, чтобы при удалении элемента смещать очередь к началу.