Ho dato un'occhiata al volo e posso dirti che dovresti modificare la funzione stampa, perchè una volta modificata la variabile t che usi per contare gli elementi ti ritrovi con valori strani.
Usa semplicemente una nuova variabile, che inizializzerai al valore di t.
Spero di essere stato chiarocodice://stampa pila void pila:: stampa(E & e){ int x; x=t; while(x!=0){ e=p[x-1]; x--; cout<<" "<<e<<endl; } }