Черга (англ. queue) в програмуванні — динамічна структура даних, що працює за принципом «перший прийшов — перший пішов» (англ. FIFO — first in, first out). У черги є голова (англ. head) та хвіст (англ. tail). Елемент, що додається до черги, опиняється в її хвості. Елемент, що видаляється з черги, знаходиться в її голові.
Така черга повністю аналогічна звичній «базарній» черзі, у якій спочатку обслуговують того, хто прийшов першим, потім наступного і так далі.
Основні операції з чергою
- англ. enqueue — "поставити в чергу". Операція додавання елемента в "хвіст" черги. При цьому довжина черги збільшується на одиницю. Якщо відбувається намагання додати елемент у вже заповнену чергу, відбувається її переповнення (англ. queue overflow).
- англ. dequeue — "отримання з черги". Операція, яка повертає елемент з голови та видаляє його з черги, таким чином встановлюючи голову на наступний за видаленим елемент та зменшуючи довжину на одиницю. При намаганні видалити елемент з пустої черги, виникає ситуація "незаповненість" (англ. queue underflow).
Реалізація на мовах програмування
Черга може бути реалізована за допомогою масиву Q[1...n], в якому зберігаються дані та двох додаткових змінних head[Q] та tail[Q], в яких зберігаються індекси відповідно "голови" та "хвоста" черги, length[Q] -- довжина черги.
Тоді операції enqueue та dequeue запишуться так:
ENQUEUE (Q, x)
1 Q[tail[Q]] := x
2 if tail[Q] = length[Q]
3 then tail[Q] := 1
4 else tail[Q] := tail[Q] + 1
DEQUEUE (Q)
1 x := Q[head[Q]]
2 if head[Q] = length[Q]
3 then head[Q] := 1
4 else head[Q] := head[Q] + 1
5 return x
- Томас Кормен; Чарльз Лейзерсон, Рональд Рівест, Кліфорд Стайн (2009) [1990]. 10.1 Стеки і черги. Вступ до алгоритмів (вид. 3rd). MIT Press і McGraw-Hill. ISBN .
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Cherga angl queue v programuvanni dinamichna struktura danih sho pracyuye za principom pershij prijshov pershij pishov angl FIFO first in first out U chergi ye golova angl head ta hvist angl tail Element sho dodayetsya do chergi opinyayetsya v yiyi hvosti Element sho vidalyayetsya z chergi znahoditsya v yiyi golovi Taka cherga povnistyu analogichna zvichnij bazarnij cherzi u yakij spochatku obslugovuyut togo hto prijshov pershim potim nastupnogo i tak dali Osnovni operaciyi z chergoyuangl enqueue postaviti v chergu Operaciya dodavannya elementa v hvist chergi Pri comu dovzhina chergi zbilshuyetsya na odinicyu Yaksho vidbuvayetsya namagannya dodati element u vzhe zapovnenu chergu vidbuvayetsya yiyi perepovnennya angl queue overflow angl dequeue otrimannya z chergi Operaciya yaka povertaye element z golovi ta vidalyaye jogo z chergi takim chinom vstanovlyuyuchi golovu na nastupnij za vidalenim element ta zmenshuyuchi dovzhinu na odinicyu Pri namaganni vidaliti element z pustoyi chergi vinikaye situaciya nezapovnenist angl queue underflow Realizaciya na movah programuvannyaCherga mozhe buti realizovana za dopomogoyu masivu Q 1 n v yakomu zberigayutsya dani ta dvoh dodatkovih zminnih head Q ta tail Q v yakih zberigayutsya indeksi vidpovidno golovi ta hvosta chergi length Q dovzhina chergi Todi operaciyi enqueue ta dequeue zapishutsya tak b ENQUEUE b Q x 1 Q tail Q x 2 b if b tail Q length Q 3 b then b tail Q 1 4 b else b tail Q tail Q 1 b DEQUEUE b Q 1 x Q head Q 2 b if b head Q length Q 3 b then b head Q 1 4 b else b head Q head Q 1 5 b return b x Tomas Kormen Charlz Lejzerson Ronald Rivest Kliford Stajn 2009 1990 10 1 Steki i chergi Vstup do algoritmiv vid 3rd MIT Press i McGraw Hill ISBN 0 262 03384 4