|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Aug 2006
Messaggi: 88
|
cancellare lista c
salve.
sto guardando la soluzione di un esercizio in c data una lista la cancella tutta ricorsivamente. questo e il codice. void delete_list(link head) { if(head_of_list->next)// testa della lista delete_list(head_of_list->next); delete_node(head_of_list); } // // funzione ausiliaria di delete_list // void delete_node(link node){ node->next = NULL; node->value = -1; free(node); } quello che non capisco e come fa a eliminare la lista. nel senso fino a che head->next e vero entra nell'if e richiama ricorsivamente la funzione spostandosi nel prossimo elemento. mentre la funzione delete_node lo richiama solo quando arriva all'ultimo elemento perche head->next e falso, quindi elimina solo l'ultimo elemento mentre degli altri restano liberi in memoria... mi potreste delucidare le idee ?? ce un modo piu facile per eliminare la lista ricorsivamente ? |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Quote:
|
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
|
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:47.