# data[].attributes.body
Stiva (stack) este o structură de date liniară abstractă, pentru care sunt definite operațiile de adăugare a unui element și eliminare a unui element și aceste operații se realizează la un singur capăt al structurii, numit vârful stivei.
Schiau Dragos

# data[].attributes.headline
Folosirea containerului STL stack pentru coadă

# data[].attributes.subject
Folosirea containerului STL stack pentru coadă

# data[].attributes.body
Standard Template Library pune la dispoziție un container adaptor specializat pentru gestionarea unei cozi, numit queue. Un obiect de tip queue încapsulează toate operațiile specifice cozii:
1.Declarații
#include <queue>
2.Inițializarea cozii – crearea unei cozi vide
queue<int> Q;

3.Verificarea faptului că este vidă coada

Q.empty() // true dacă este vidă, false în caz contrar
4.Adăugarea unui element – PUSH

Q.push( _VALOARE );

5.Eliminarea unui element – POP

Q.pop();

6.Identificarea valorii de la începutul cozii – TOP

Q.top()

# data[].attributes.body
Cu o coadă se pot face următoarele operații:

• inițializarea cozii – crearea unei cozi vide;
•
• verificarea faptului că o coadă este sau nu vidă;
•
• adăugarea unui nou element în coadă. Operația se numește push;
•
• eliminarea unui element din coadă. Operația se numește pop;
•
• identificarea valorii elementului de la începutul cozii – accesul la acel element Operația se numește front.
•
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.
Oltean Robert

# data[].attributes.body
Cu o stivă se pot face următoarele operații:

inițializarea stivei – crearea unei stive vide;

verificarea faptului că o stivă este sau nu vidă;

adăugarea unui nou element pe stivă – elementul devine vârful stivei. Operația se numește push;

eliminarea unui element de pe stivă – se va elimina vârful stivei. Un nou element devine vârf al stivei, sau ea devine vidă. Operația se numește pop;

identificarea valorii elementului din vârful stivei – accesul la acel element Operația se numește top.

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).

# data[].attributes.body
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]

# data[].attributes.body
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.
Rares Arsu

# data[].attributes.headline
Folosirea containerului STL stack pentru stiva

# data[].attributes.subject
Folosirea containerului STL stack pentru stiva

# data[].attributes.body
STL(Standard Template Library) are 4 componente: containere (secvențiale,  adaptate,  asociate), algoritmi, funcții și iteratori.

Stack este un container adaptor specializat pentru gestionarea unei stive. Acesta încapsulează toate operațiile specifice stivei.

1. Declarații
#include <stack>

2. Inițializarea stivei – crearea unei stive vide
stack<int> S;

3. Verificarea faptului că stiva este vidă
Q.empty() // true dacă stiva este vidă, false în caz contrar

4.Adăugarea unui element – PUSH
Q.push( _VALOARE );

5. Eliminarea unui element – POP
Q.pop();

6.Identificarea valorii din vârful stivei – TOP
Q.top()

# data[].attributes.body
Vom folosi un tablou unidimensional alocat static Q și două variabile simple prin care identificăm începutul (st) și sfârșitul stivei (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 = 1 , dr = 0;

Verificarea faptului că este vidă coada

st > dr // stivă vidă
st <= dr // stivă nevidă

Adăugarea unui element – PUSH

Q[++dr] = _VALOARE ;

E liminarea unui element – POP

st ++;

Identificarea valorii de la începutul cozii – TOP

Q[st]

Ștefan Ana Marina