Ciao, un amico per insegnaermi i puntatori mi ha mandato questo codice:
Solamente non somno ben riuscito a capire che cosa faccia...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; };
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?![]()