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;
}