STIVA

Cerința

Să se scrie un program care gestionează o stivă de numere întregi. Inițial stiva este vidă. Programul va citi de la tastatură o listă de operații, care pot fi:

  • push X – adaugă valoarea întreagă X pe stivă;
  • pop – elimină elementul din vârful stivei;
  • top – afișează elementul din vârful stivei.

Programul va realiza asupra stivei operațiile citite, în ordine. Afișările se fac pe ecran, câte o valoare pe linie.

Date de intrare

Programul citește de la tastatură un număr n, apoi cele n operații,

Date de ieșire

Programul va afișa pe ecran numere rezultat ale operațiilor top, câte unul pe o linie.

Restricții și precizări

  • stiva nu va conține la un moment dat mai mult de 1000 elemente
  • elementele stivei vor fi cuprinse între -1.000.000 și 1.000.000
  • dacă la un moment dat se aplică operația pop și stiva nu conține niciun element, operația nu are efect
  • dacă la un moment dat se aplică operația top și stiva nu conține niciun element, operația nu are efect (nu se afișează nimic)

Exemplu

Intrare

12
push 5
push 4
top 
push 7 
push -5
pop
top
pop
top
push 11
top
pop

Ieșire

4
7
4
11

SOLUTIE

#include <iostream>
#include <cstring>
using namespace std;
int st[2001],sf = 0;
void pop()
{
      sf--;
}
void top()
{
      cout<<st[sf]<<'\n';
}
void push(int val)
{
      st[++sf]=val;
}
int main()
{
    int n,a;
    cin>>n;
    for(int i=0;i<n;i++)
    {
          char op[10];
          cin>>op;
          if(!strcmp(op,"pop"))
          {
                if(sf>0)
                pop();
          }
          else if(!strcmp(op,"top"))
          {
                if(sf>0)
                top();
          }
          else
          {
                cin>>a;
                push(a);
          }
    }
    return 0;
}
%d bloggers like this: