Кругова черга є розширена версія звичайної черги, де останній елемент з’єднаний з першим елементом. Таким чином утворюється колоподібна структура. Кругова черга усуває основні обмеження звичайної черги. У звичайній черзі після невеликої вставки та видалення залишиться непридатний порожній простір.
Реалізація циклічної черги за допомогою масиву:
- Перевірте, чи черга порожня, перевіривши, чи фронт дорівнює -1. …
- Встановіть для x значення queue[front].
- Якщо front дорівнює rear, встановіть front і rear на -1.
- В іншому випадку збільште front на 1 і якщо front дорівнює n, встановіть front на 0.
- Повернути х.
Є черга лінійна структура даних, яка зберігає елементи послідовно. Він використовує підхід FIFO (першим прийшов, першим вийшов) для доступу до елементів. Черги зазвичай використовуються для керування потоками в багатопоточності та реалізації пріоритетних систем масового обслуговування.
У лінійній черзі вставка виконується із заднього кінця, а видалення — з переднього кінця. У циклічній черзі вставлення та видалення може відбуватися з будь-якого кінця. Обсяг пам’яті, який займає лінійна черга, більше, ніж циклічна. Він вимагає менше пам'яті порівняно з лінійною чергою.
Щоб знайти зайняте місце або кількість елементів у черзі:
- Якщо Rear >= Front, no_of_elements_present = Rear – Front + 1; оскільки кількість елементів у діапазоні є його верхньою межею – нижньою межею + 1. …
- Якщо Front > Rear, тоді no_of_elements_present = N(max-size) – (Front – Rear – 1).
Система дорожнього руху: у системі комп’ютерного керування дорожнім рухом, світлофор є одним із найкращих прикладів кругової черги. Кожне світло світлофора вмикається по одному через кожний проміжок часу. Наприклад, червоне світло вмикається на одну хвилину, потім жовте світло на одну хвилину, а потім зелене світло.