Stive (stack)

stack<T> implementează structura LIFO (Last In, First Out) — ultimul adăugat e primul scos.

#include <stack>
using namespace std;

stack<int> s;
s.push(1);
s.push(2);
s.push(3);

cout << s.top() << endl;  // 3 (ultimul adăugat)
s.pop();                   // elimină 3
cout << s.top() << endl;  // 2
cout << s.size() << endl; // 2
cout << s.empty() << endl; // 0 (false)

Aplicație: verificare paranteze

bool parantezeBine(string s) {
  stack<char> st;
  for (char c : s) {
    if (c == '(') st.push(c);
    else if (c == ')') {
      if (st.empty()) return false;
      st.pop();
    }
  }
  return st.empty();
}
cout << parantezeBine("((()))") << endl; // 1 (true)
cout << parantezeBine("(()") << endl;    // 0 (false)