X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=TP5%2Fexo4%2Fliste_chainee.c;h=a8589397a6aba3bf8da83b37936aedb2918203b3;hb=7b0cef36a5458d18b5288d761eafa15bbc50a785;hp=add8b224f8d3bab04fc1d614ba66680c3ce53a9d;hpb=5e90a798f3e6acf9ed025f2cf6efa96e60688105;p=Algorithmic_C.git diff --git a/TP5/exo4/liste_chainee.c b/TP5/exo4/liste_chainee.c index add8b22..a858939 100644 --- a/TP5/exo4/liste_chainee.c +++ b/TP5/exo4/liste_chainee.c @@ -12,7 +12,7 @@ typedef struct cellule { struct cellule *suivant; } Cellule, *Liste; -Cellule *creer_maillon(element e, Cellule * suivant) +Cellule *creer_maillon(element e, Cellule *suivant) { Cellule *pnouveau = malloc(sizeof(Cellule)); pnouveau->valeur = e; @@ -142,12 +142,12 @@ Liste supprimer_iter(element e, Liste L) free(L); pavant->suivant = NULL; return pdebut; - /* supprimer au début de la liste */ + /* supprimer au début de la liste */ } else if (L->valeur == e && pavant == NULL) { Cellule *pcourant = L; free(L); return pcourant->suivant; - /* supprimer au mileu de la liste */ + /* supprimer au mileu de la liste */ } else if (L->valeur == e) { Cellule *pcourant = L; free(L); @@ -177,7 +177,11 @@ Liste inverser_rec(Liste L) void liberer_iter(Liste L) { - + while (!L) { + Cellule *pcourant = L; + free(L); + L = pcourant->suivant; + } } void liberer_rec(Liste L) @@ -219,8 +223,10 @@ int main() L = supprimer_iter(2, L); visualiser_rec(L); visualiser_iter(L); - liberer_rec(L); + //liberer_rec(L); + liberer_iter(L); /* ... */ } /****************************************************************************/ +/* vim:noet:ts=8:sw=8:textwidth=80 */