Ciao a tutti ho un problema con un esercizio di c++...
data una lista non vuota e un intero k devo eliminare dalla lista(dall'inizio) tanti nodi quanto è k.
es k=2 elimino i primi 2 nodi. Fatto ciò devo restituire la listamodificata. io ho fatto così:
struct nodo
{
int info;
nodo* next;
nodo(int a=0, nodo* b=0){info=a;next=b;}
};
nodo* dealloca_k_nodi(nodo* P, int k)
{
while(k>0)
{
nodo* t=P->next;
delete P;
P=dealloca_k_nodi(t, k-1);
return P;
}
P->next=dealloca_k_nodi(p->next, k);
return P;
}
void stampa(nodo* P)
{
cout<< P->info << ' ';
stampa(P->next);
}
int main()
{
int k=3;
nodo* P=new nodo(1,new nodo(2,new nodo(3,new nodo(1,new nodo(9,new nodo(1,0))))));
P=dealloca_k_nodi(P,k);
stampa(P);
cout << endl;
}
mi da segmentation fault... non so dove sbattere la testa... sicuramente sarà un errore stupido...(spero)
ringrazio in anticipo per eventuali risposte![]()