Esercizio 03
// pila.h // Created by Paolo on 23/10/14 // Copyright (c) 2014 dib. All rights reserved #ifndef pila_pila_h #define pila_pila_h typedef bool boolean; typedef char tipoelem; const int MAXELEM = 100; //#define MAXELEM 100 class Pila{ public: void creaPila(); //opzionale boolean pilaVuota(); tipoelem leggiPila(); void inPila(tipoelem); void fuoriPila(); Pila(); ~Pila(); private: tipoelem elementi[MAXELEM]; int testa; }; #endif
// pila.cpp // Created by Paolo on 23/10/14. // Copyright (c) 2014 dib. All rights reserved. #include "pila.h" using namespace std; void Pila::creaPila(){ testa=-1; } boolean Pila::pilaVuota(){ return testa<0; } tipoelem Pila::leggiPila(){ return elementi[testa]; } void Pila::inPila(tipoelem elemento){ if (testa=0) testa--; } Pila::Pila(){ creaPila(); } Pila::~Pila(){ };
// main.cpp // Created by Paolo on 23/10/14. // Copyright (c) 2014 dib. All rights reserved. #include <iostream> #include "pila.h" using namespace std; int main(int argc, const char * argv[]) { Pila pila; tipoelem dato; dato = 'a'; pila.inPila(dato); dato = 'b'; pila.inPila(dato); dato = 'c'; pila.inPila(dato); dato = 'd'; pila.inPila(dato); dato = 'e'; pila.inPila(dato); Pila tempPila; while (!pila.pilaVuota()) { tempPila.inPila(pila.leggiPila()); pila.fuoriPila(); } while (!tempPila.pilaVuota()) { cout << tempPila.leggiPila() << endl; pila.inPila(tempPila.leggiPila()); tempPila.fuoriPila(); } cout << endl << "inserisco z..." << endl; pila.inPila('z'); while (!pila.pilaVuota()) { tempPila.inPila(pila.leggiPila()); pila.fuoriPila(); } while (!tempPila.pilaVuota()) { cout << tempPila.leggiPila() << endl; pila.inPila(tempPila.leggiPila()); tempPila.fuoriPila(); } return 0; }