De ce contează?
Stai la rând la brutărie. Cine a venit primul e servit primul; cine tocmai a intrat se așază la capătul rândului și așteaptă. Nimeni nu sare peste. Această regulă simplă și corectă — „primul venit, primul servit” — este, în programare, structura numită coadă.
Ce este o coadă
O coadă (engleză queue) este o structură în care elementele sunt servite în ordinea în care au sosit. Regula se numește FIFO — First In, First Out (primul intrat, primul ieșit).
Are două capete cu roluri fixe:
- spatele (back) — singurul loc unde adaugi un element;
- fața (front) — singurul loc de unde scoți un element.
Spre deosebire de stivă (LIFO — ultimul intrat iese primul), coada păstrează ordinea naturală a sosirii. Stiva e ca un teanc de farfurii; coada e ca rândul la casă.
Cum se comportă
Pornim de la o coadă goală și adăugăm 3 clienți (A, B, C), apoi servim unul:
| coada | A | B | C |
fata | spate |
| coada | B | C |
fata | spate |
Operațiile de bază (intuitiv)
| Operație | Ce face | La ce capăt |
|---|---|---|
push (enqueue) | adaugă un element | spate |
pop (dequeue) | scoate elementul servit | față |
front | citește cine urmează (fără a scoate) | față |
empty | spune dacă mai e cineva | — |
Unde apare în viața reală
- Clienți la ghișeu, mașini la o intersecție cu semafor.
- Comenzi într-un restaurant, procesate în ordinea primirii.
- Pachete de date trimise pe rețea, livrate în ordine.
- Parcurgerea în lățime (BFS) a unui graf — explorezi vecinii în ordinea descoperirii.
Vizualizare
Urmărește cum elementele intră pe la spate și ies pe la față, păstrând mereu ordinea sosirii:
Confuzii frecvente la început:
- Confunzi coada cu stiva. Coada e FIFO (primul venit iese primul); stiva e LIFO. Întreabă-te: „cine iese primul?” înainte de a alege structura.
- Scoți de la capătul greșit. Adaugi la spate, scoți din față — nu invers; altfel strici ordinea.
- Citești
frontdintr-o coadă goală. Verifică întâiempty(), altfel accesezi ceva inexistent. - Crezi că poți accesa mijlocul. O coadă „pură” lucrează doar la capete; pentru acces liber ai nevoie de un vector.
Recapitulare
- Coada respectă regula FIFO: primul venit este primul servit.
- Adaugi mereu la spate și scoți din față — capete cu roluri fixe.
- Modelează ordini naturale (rânduri, comenzi, BFS); diferă de stivă, care e LIFO.