Ne dorim:
În acest tutorial vom folosi clasa std::stack din STL. Pentru mai multe detalii, vă sugerăm să citiți documentația oficială (stack).
Atenție! Este nevoie să includem biblioteca stack.
#include <stack> // std::stack
Clasa std::stack oferă toate funcționalitățile uzuale pentru o stivă. Menționăm că nu există o implementare unică, astfel încât apar mici diferențe față de implementările sugerate în articol:
În continuare vom prezenta un exemplu inserare de elemente într-o stivă.
int n; // numarul de elemente din stiva int x; // variabila temporara std::stack<int> st; // stiva folosita // citire elemente si adaugare in stiva std::cout << "n = "; std::cin >> n; for (int i = 0; i < n; ++i) { // citeste un alt element std::cout << "x = "; std::cin >> x; // adauga in varful stivei st.push(x); // afisare statistici std::cout << "top = " << st.top() << "; size = " << st.size() << "\n"; }
Având la dispoziție o stivă cu elemente, putem sa extragem element cu element și să le prelucrăm (afișare).
// extrage elementele din stiva // cat timp stiva contine cel putin element, extrage elementul din varf std::cout << "Extrag: "; while (!st.empty()) { x = st.top(); // extrage elementul din varf st.pop(); // elimina elementul din varf //afisare std::cout << x << " "; } std::cout << "\n"; // verifica daca stiva mai contine elemente std::cout << (st.empty() ? "Stiva goala" : "Stiva contine elemente") << "\n";
g++ main.cpp -o main
Exemple:
./main n = 5 x = -1 top = -1; size = 1 x = 2 top = 2; size = 2 x = -3 top = -3; size = 3 x = 4 top = 4; size = 4 x = -5 top = -5; size = 5 Extrag: -5 4 -3 2 -1 Stiva goala