|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Nov 2010
Messaggi: 71
|
creare lista ricorsivamente in c
Salve ragazzi sono nuovo su questo forum. ho questo problema: devo creare una lista con una funzione ricorsiva, la funzione che ho creato mi resituisce sempre il puntatore della testa a null e non so perchè. Spero che qualcuno mi aiuti.
Codice:
struct elemento*crea_lista(struct elemento*testa,struct elemento*app, int n)
{
if (n==0)
return testa;
else
{
if (testa==NULL)
{
printf("testa = NULL \n");
testa=(struct elemento*)malloc(sizeof(struct elemento));
testa->inf=3;
app=testa;
app->next=crea_lista(testa,app,n-1);
}
else
{
printf("testa diverso da null \n");
app=(struct elemento*)malloc(sizeof(struct elemento));
app->inf=4;
app->next=crea_lista(testa,app,n-1);
}
}
}
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
per forza, c'è un valore di ritorno diverso da NULL solo per l'ultima chiamata ricorsiva, il cui valore viene ritornato alla penultima chiamata ricorsiva, che però ritorna NULL perché n != 0.. e così via
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Nov 2010
Messaggi: 71
|
scusa tu dici quindi di non richiamare la funzione collegandola ad app->next bensi di richiamarla tramite il semplice return???
cioè al posto di: app->next=crea_lista(testa,app->next,n-1) dovrei usare return(crea_lista(testa,app->next,n-1))??? |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:00.



















