Questo sito ha bisogno della pubblicità per poter essere mantenuto. Gentilmente disabilita il blocco della pubblicità nel tuo browser per questo sito web.
Caricamento in corso...Caricamento in corso...
Caricamento in corso...

Pila gestista con classe

Costruire una pila con le funzioni: isEmpty, push, pop e top tramite classe.

#include <cstdlib>
#include <iostream>
 
using namespace std;
class Pila{
      private:
              int t, s[5];
      public:     
                   Pila()
                   {
                         t=0; //costruttore
                   }
                    
      bool isEmpty(void);
      void Push(int a);
      int Pop(void);
      int Top();
};
 
bool Pila::isEmpty(void)
{
     if (t > 0)
     return false;
     else
     return true;
};
 
void Pila::Push(int a)
{
     s[t] = a;
     t++;
};
 
int Pila::Pop(void)
{
     if(t > 0)
     {
          t--;
         return s[t];
     }
};
 
int Pila::Top(void)
{
    return s[t-1];
};
 
int main(int argc, char *argv[])
{
     
    int scelta,tmp;
    // Istanza STATICA di una pila
    Pila miaPila;
     
    do
    {
        cout<<"Scegli:"<<endl;
        cout<<"1 - Inserisci elementi"<<endl;
        cout<<"2 - Verifica se la pila e' vuota"<<endl;
        cout<<"3 - Aggiugni numero come ultimo elemento di S"<<endl;
        cout<<"4 - Togli dalla pila l'ultimo elemento"<<endl;
        cout<<"5 - Vedi il top della pila"<<endl;
        cout<<"6 - Esci"<<endl;
        cout<<endl;
        cin>>scelta;
         
        switch(scelta)
        {
        case 1:
             for (int i=0; i<3; i++)
             {
              cout<<"Inserisci l'emento: "<<endl;
              // Inserisco l'elemento temporaneamente nella variabile tmp
              //al fine di poter passare il dato di input al metodo della classe pila precendetemente instanziata
              cin>>tmp;
              miaPila.Push(tmp);
             }
             break;
             
        case 2:
             if(miaPila.isEmpty())
             cout<<"Pila vuota"<<endl;
             else
             cout<<"Pila piena"<<endl;
              
             break;
          
        case 3:
             cout<<"Aggiungi num: "<<endl;
             cin>>tmp;
             miaPila.Push(tmp);
              
             break;
              
        case 4:
             tmp = miaPila.Pop();
             cout<<"Estretto numero "<<tmp<<" dalla pila"<<endl;
             break;
              
        case 5:
             cout<<"L'ultimo el estratto e': "<<miaPila.Top()<<endl;
       
        }
    }while(scelta != 6);
         
    cout<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}