Ciao,
sto provando a fare il seguente esercizio:
codice:
- Sia data una lista concatenata semplice L di interi. Scrivere una o piu' funzioni, descrivendone sempre pre e post-condizione, che data L e un puntatore p ad un elemento della lista, produca in stampa su schermo:
1) tutti gli elementi dall’elemento puntato da p alla fine della lista in ordine inverso
2) tutti gli elementi dalla testa della lista all’elemento precedente quello puntato da p sempre in ordine inverso
Esempio:
Sia L la lista 2->4->1->7->20->3->5->9->NULL e supponiamo che p punti all’elemento 20.
Output: 9,5,3,20,7,1,4,2.
Mi sto concentrando sul punto1 (tanto il 2o è uguale...) e ho pensato al seguente codice:
codice:
void p1 (list *p)
{
if (p == NULL)
return;
else
p1(p->next);
printf("%i,p->d);
}
Fatta cosi ricorsivamente va bene??
Non mancherà un return dopo il printf? (questo è il grande dubbio)
Secondo me no.
Grazie