stacks queues stl
Aflați implementarea stivelor și a cozilor în STL cu exemple.
Stivele și cozile sunt două containere în STL, care sunt foarte simple în natură. Sunt cele mai simple containere care au aplicații largi în programarea software.
În acest tutorial, vom vedea o implementare detaliată a ambelor containere în STL. Vom parcurge, de asemenea, diferitele operații acceptate de stivă și coadă cu exemple.
=> Urmăriți aici seria de antrenament C ++ simplă.
Ce veți învăța:
Stive
Stack container in STL este un tip de adaptoare pentru containere. Este folosit pentru a reproduce o structură de date stivă în C ++. Stack container este un set de elemente în care elementele sunt inserate la un capăt și sunt șterse și la același capăt.
Acest punct comun de adăugare și ștergere este cunoscut sub numele de „Partea de sus a stivei”.
Reprezentarea pictorială a stivei este prezentată mai jos.
Așa cum se arată în reprezentarea de mai sus, stiva este un container în care elementele sunt adăugate și șterse din același capăt numit Partea de sus a stivei.
Deoarece adăugarea și ștergerea se întâmplă la același capăt, putem spune că containerul stivă este tipul de lucru LIFO (ultima intrare, prima ieșire). Aceasta înseamnă că elementul adăugat mai întâi va fi ultimul care va fi șters.
Pentru a implementa containerul stivă, trebuie să includem antetul în programul nostru.
#include
Sintaxa declarației generale pentru containerul stivă este:
stack stackName;
Operațiuni Stack
În continuare, permiteți-ne să discutăm diferitele operațiuni care stivuiesc containerul în suporturile STL.
- Apăsați : operația de împingere este utilizată pentru a introduce un element în stivă. Această operație adaugă întotdeauna elemente în partea de sus a stivei.
Luați în considerare o stivă goală de tip întreg .
Apoi, să adăugăm elementul 1 la stivă.
Apoi, adăugăm elementul 3 la stivă.
Conform reprezentării, ca rezultat al unei operații de împingere, un element este adăugat în partea de sus a stivei. După fiecare operație de împingere, dimensiunea stivei este mărită cu 1.
- pop : operația pop este utilizată pentru a elimina un element din stivă. Elementul eliminat este cel care este îndreptat către partea de sus a stivei. Ca urmare a operației pop, dimensiunea stivei este redusă cu 1.
Să vedem cum arată operațiunea pop:
Luați în considerare stiva mea ca mai sus, în care am împins deja 2 elemente.
Acum să numim funcția pop (). Când acest apel este executat, elementul din partea de sus a teancului este eliminat și „Sus” indică următorul element așa cum se arată mai jos.
Dacă apelăm din nou pop (), atunci următorul element (în acest caz 1) va fi eliminat, rezultând astfel o stivă goală.
clasificarea arborelui decizional în exploatarea datelor
- top : Returnează cel mai de sus element al stivei.
- gol : Verifică dacă stiva este goală sau nu.
- mărimea: Returnează dimensiunea stivei, adică numărul de elemente din stivă.
Dat mai jos este un exemplu de implementare a stivei pentru a înțelege mai bine operațiunile.
#include #include using namespace std; void printStack(stack stk) { while (!stk.empty()) { cout << ' ' << stk.top(); stk.pop(); } cout << '
'; } int main () { stack oddstk; oddstk.push(1); oddstk.push(3); oddstk.push(5); oddstk.push(7); oddstk.push(9); cout << 'The stack is : '; printStack(oddstk); cout << '
Size of stack: ' << oddstk.size(); cout << '
Top of stack: ' << oddstk.top(); cout << '
oddstk.pop() : '; oddstk.pop(); printStack(oddstk); cout<<'
Another pop(): '; oddstk.pop(); printStack(oddstk); return 0; }
Exemplul de mai sus arată în mod clar operația de împingere care generează o stivă. De asemenea, arată stiva după două operații pop consecutive.
Astfel am văzut stiva și operațiunile sale în STL. În plus, în acest tutorial, vom vedea implementarea detaliată a unui alt container STL simplu, care este „Coadă”.
Coadă
Coada este încă un alt container în STL, care este și foarte simplu și util. Containerul de coadă este o replică a structurii de date a cozii în C ++. Spre deosebire de stivă, în containerul pentru coadă, există două capete, adică față și spate.
Elementele sunt adăugate la coada din spate în timp ce sunt șterse din partea din față a cozii. În general, coada utilizează tipul de aranjament FIFO (First in, First Out).
Pentru a implementa un container de coadă într-un program, trebuie să includem un antet în cod.
#include
Sintaxa generală pentru declararea cozii este:
coadă nume_coadă;
Declarăm containerul pentru coadă după cum urmează:
Queue myqueue;
Operații la coadă
Acum, vom vedea diferitele operații acceptate de coadă.
- Apăsați: Funcția „push” adaugă elementul la sfârșitul cozii, adică la partea din spate a cozii.
- pop: Funcția „pop” elimină primul element al cozii, adică elementul din partea din față a cozii.
Să înțelegem funcțiile push și pop ale cozii.
Luați în considerare o coadă goală declarată deasupra myqueue. Acum împingem un număr par 2 în coadă cu operația
myqueue.push (2);
Acum coada va arăta astfel:
Apoi, adăugăm „4” la coadă cu apelul „myqueue.push (4)”.
Acum coada arată așa cum se arată mai jos:
După cum s-a văzut mai sus, elementele sunt împinse în coadă de la capătul din spate sau din spate.
Acum, să facem operațiunea pe coadă.
myqueue.pop ();
Așa cum vedem, atunci când este apelat pop (), elementul din fața cozii este eliminat. Aceasta înseamnă că primul element care este introdus în coadă este primul element care iese din coadă.
- față: Această funcție returnează o referință la primul element al cozii.
- înapoi: Înapoi returnează o referință la ultimul element din coadă.
- gol: Verifică dacă coada este goală.
- mărimea: Returnează dimensiunea cozii, adică numărul de elemente din coadă.
Dat mai jos este un exemplu de program care demonstrează operațiunile utilizate de containerul de coadă.
#include #include using namespace std; void printQueue(queue myqueue) { queue secqueue = myqueue; while (!secqueue.empty()) { cout << ' ' << secqueue.front(); secqueue.pop(); } cout << '
'; } int main() { queue myqueue; myqueue.push(2); myqueue.push(4); myqueue.push(6); myqueue.push(8); cout << 'The queue myqueue is : '; printQueue(myqueue); cout << '
myqueue.size() : ' << myqueue.size(); cout << '
myqueue.front() : ' << myqueue.front(); cout << '
myqueue.back() : ' << myqueue.back(); cout << '
myqueue.pop() : '; myqueue.pop(); printQueue(myqueue); return 0; }
Ieșire:
Mica coada este: 2 4 6 8
myqueue.size (): 4
myqueue.front (): 2
myqueue.back (): 8
myqueue.pop (): 4 6 8
După cum se arată mai sus, declarăm mai întâi un container de coadă. Apoi folosind operația de împingere adăugăm primele patru numere pare în ea. După aceea, scoatem elementul din coadă și afișăm coada modificată.
cele mai bune companii de găzduire web din India
Concluzie
Cu aceasta, am ajuns la sfârșitul acestui tutorial despre stive și cozi. După cum sa menționat deja, acestea sunt cele mai simple containere pe care le avem în STL. O altă variantă a containerului de coadă este cunoscută sub numele de „Coadă prioritară”.
În viitorul nostru tutorial, vom discuta mai multe despre Priority Queue în STL !!
=> Vizitați aici pentru a afla C ++ de la zero.