Ciao a tutti! sto preparando l'esame di oop e ho dei dubbi su un programma che ho fatto.Mi potete aiutare?GRAZIE in anticipo.
Se ho indicato n come nodo di testa della lista perchè in Nodo*isert(Nodo*p,int info) devo mettere p?
e poi scrivendo Nodo*insert(Nodo*p,int info) Nodo* mi restituisce la nuova testa della lista e scrivendo Nodo*p sto dicendo che
il passaggio è per valore perchè?
Ed infine l'inserimento in coda non funziona perchè?
Questo è il programma:

file.h
struct Nodo{
int info;
Nodo*next;

};


class Lista
{
private:
Nodo*n;

Nodo*insert(Nodo*p,int info);
Nodo*insert_coda(Nodo*p,int info);

public:
Lista();
~Lista();


void Inserire(int);
void Ins_coda(int);


};


#endif

file.cpp

//Inserimento in testa alla lista
void Lista::Inserire(int info)
{
n=insert(n,info);
}

//Inserimento in testa alla lista
Nodo*Lista::insert(Nodo*p,int info)
{
Nodo*tmp;
tmp=new Nodo;
tmp->info=info;
tmp->next=n;
return tmp;
}


//Inserimento in coda alla lista
void Lista::Ins_coda(int info)
{
n=insert_coda(n,info);
}

//Inserimento in coda alla lista
Nodo* Lista::insert_coda(Nodo *p,int info)
{
Nodo*tmp,*tmp1,*curs1;
tmp=new Nodo;
tmp->info=info;
tmp->next=NULL;
if(n==NULL)
{
insert(n,info);
}
else
{
while(tmp1!=NULL)
{
curs1=tmp1;
tmp1=tmp->next;
tmp1->next=tmp;
}
}
return n;

}