C++/Stack
W języku C++ stos jest implementacją struktury danych typu last-in, first-out (LIFO), w której elementy są wstawiane i usuwane tylko z jednego końca stosu. Oto przykład użycia stosu w standardowej bibliotece szablonów C++ (STL):
#include <iostream>
#include <stack>
using namespace std;
int main() {
stack<int> myStack; // create an empty stack
// push elements onto the stack
myStack.push(3);
myStack.push(5);
myStack.push(1);
myStack.push(7);
myStack.push(9);
// check the top element
cout << "Top element: " << myStack.top() << endl;
// pop the top element
myStack.pop();
// check the new top element
cout << "New top element: " << myStack.top() << endl;
// print the elements in the stack
while (!myStack.empty()) {
cout << myStack.top() << " ";
myStack.pop();
}
cout << endl;
return 0;
}
W tym przykładzie najpierw tworzymy pusty stos liczb całkowitych o nazwie myStack. Następnie używamy metody push, aby wstawić elementy na górę stosu. Zauważ, że ostatni element włożony na stos staje się elementem górnym.
Następnie używamy metody top do sprawdzenia wartości górnego elementu oraz metody pop do usunięcia górnego elementu ze stosu. Następnie używamy pętli, aby wydrukować elementy ze stosu, które są usuwane ze stosu metodą pop, aż stos będzie pusty.
Należy zauważyć, że stos zapewnia ograniczony zestaw operacji w porównaniu z innymi kontenerami C++ STL, takimi jak vector, list i deque, ale jest przydatny do implementowania algorytmów wymagających struktury danych LIFO, takich jak przeszukiwanie w głąb i ocena notacji przyrostkowej.