Ciao, un amico per insegnaermi i puntatori mi ha mandato questo codice:
codice:
#include <iostream.h>
#include <stdlib.h>
// Description: Gestione di una lista di interi
struct el
{ int inf;
el *pun;
};
el *crealista(int n);
el *estrai(el *&p);
void accoda(el *&p);
int main()
{
el *p0, *p;
int k;
cout<<"Con quanti elementi vuoi inizializzare la lista? ";
cin>>k;
p0=crealista(k);
for (p=p0; p!=0; p=p->pun) cout<<p->inf<<"\t"; // visualizzo gli elementi
cout<<endl;
system("PAUSE");
if (p0 !=0)
{
accoda(p0); // aggiunge un elemento in coda alla lista
p0=estrai(p0); //elimino l'elemento in testa alla lista
for (p=p0; p!=0; p=p->pun) cout<<p->inf<<"\t";
system("PAUSE");
}
else cout<<"hai creato una lista vuota\n";
return 0;
};
el *crealista(int n)
{
el *p, *p0=0;
int i;
for (i=1; i<=n; i++)
{ p=new el;
cin>>p->inf;
p->pun=p0;
p0=p;
}
return p0;
};
el *estrai(el *&p)
{
el *pp;
pp= p->pun;
delete p;
return pp;
};
void accoda(el *&p)
{
el *np, *pp;
for (pp=p; pp->pun!=0; pp=pp->pun);
np=new el;
cin>>np->inf;
np->pun=0;
pp->pun=np;
pp= p->pun;
};
Solamente non somno ben riuscito a capire che cosa faccia...
struct el
{ int inf;
el *pun; // Non capisco
};
el *crealista(int n); // Non capisco
el *estrai(el *&p); // Non capisco
Questi sono i pezzi principali che non ho capito, e non capendo questi, anche il resto non posso saperlo...
Qualcuno puo aiutarmi?