Coada (queue) este o structură de date abstractă în care operația de adăugare se realizează la un capăt, iar cea de eliminare se realizează la celălalt capăt.
În timpul operațiilor cu coada avem acces la un singur element, cel aflat la începutul cozii – elementul care urmează să se elimine.
Cu o coadă se pot face următoarele operații:
Operațiile cu coada sunt similare cu modul în care funcționează coada la casa de bilete a unui cinematograf. Spectatorii vin și se așează în ordine la coadă, ordinea în care cumpără biletele este aceea în care au sosit.
Deoarece operațiile de eliminare se fac în aceeași ordine ca cele de adăugare, coada este o structură de date de tip FIFO – First In First Out.
queue din STL.Vom folosi un tablou unidimensional alocat static Q și două variabile simple prin care identificăm începutul (st) și sfârșitul cozii (dr). Numele variabilelor provine de la stânga și dreapta, deoarece adăugarea unui element în coadă se face adăugând un element în tabloul suport Q, iar eliminare se face mărind variabila st – ignorând elementele din față, fără a le șterge efectiv.
În continuare considerăm o coadă cu elemente întregi.
Declarații
const int DIM = 1000; int Q[DIM], st, dr;
Inițializarea cozii – crearea unei cozi vide
st = 0 , dr = 0;
Verificarea faptului că este vidă coada
st >= dr // coadă vidă st < dr // coadă nevidă
Adăugarea unui element – PUSH
Q[dr++] = VALOARE ;
Eliminarea unui element – POP
st++;
Identificarea valorii de la începutul cozii – FRONT
Q[st]



Stiva (stack) este o structură de date liniară abstractă, pentru care sunt definite operațiile de adăugare și eliminare a unui element. Aceste operații se realizează la un singur capăt al structurii, numit vârful stivei.
În timpul operațiilor cu stiva avem acces numai la elementul din vârful stivei.
Cu o stivă se pot face următoarele operații:
Imaginați-vă o stivă de lăzi într-un depozit. Dacă adăugăm încă o ladă, o vom plasa în vârful stivei. Dacă luăm o ladă, o vom lua pe cea din vârful stivei – altfel s-ar răsturna stiva!!
Deoarece operațiile cu elementele stivei se fac la același capăt, spunem că stiva este o structură de date de tip LIFO – Last In First Out (ultimul intrat, primul ieșit).
Stiva poate fi implementată în limbajul C++ în mai multe moduri:
stack din STL.Vom folosi un tablou alocat static și o variabilă simplă prin care identificăm vârful stivei. În continuare considerăm o stivă cu elemente întregi.
Declarații
const int DIM = 100; int S[DIM], vf;
Inițializarea stivei – crearea unei stive vide
vf = 0;
Verificarea faptului că stiva este vidă
vf == 0 // stivă vidă vf > 0 // stivă nevidă
Adăugarea unui element – PUSH
S[vf++] = VALOARE ;
Eliminarea unui element – POP
vf --;
Identificarea valorii din vârful stivei – TOP
S[vf-1]


