Nel programma di seguito descritto non riesco a vedere in stampa quello che ho inserito nella lista. Qualcuno sa aiutarmi e dirmi dov'è l'errore.
#include <iostream>
#include <cstdlib>
#include <conio.h>
using namespace std;
struct elem
{
int info;
elem *pun;
};
class pila
{
private:
elem *testa;
public:
pila() {testa = NULL;}
bool empty(pila& pp);
int dim(pila pp);
void push(int val, pila& pp);
void pop();
void stampa();
};
bool pila::empty(pila& pp)
{
if(pp.testa == NULL)
return false;
}
int pila::dim(pila pp)
{
elem *punta = 0;
int i = 0;
while(punta != NULL)
{
punta = pp.testa->pun;
i++;
}
return i;
}
void pila:ush(int val, pila& pp)
{
pila p;
pila q;
for(q.testa = pp.testa; q.testa!=NULL; q.testa = testa->pun)
p.testa = q.testa;
q.testa = new elem;
testa->info = val;
q.testa = NULL;
if(pp.testa == NULL)
pp.testa = q.testa;
else
p.testa = q.testa;
}
void pila::stampa()
{
pila a;
while(testa != NULL)
{
cout << testa->info;
a.testa = testa->pun;
}
}
int main()
{
pila numeri;
elem valori;
int num;
if(numeri.empty(numeri) == false)
cout << "Pila Vuota." << endl;
cout << numeri.dim(numeri) << endl << endl;
cout << "Inserisci un numero nella pila: ";
cin >> num;
cout << numeri.dim(numeri) << endl << endl;
numeri.stampa();
getch();
return 0;
}
![]()