repositories
/
Algorithmic_C.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
TP5 exo4: Implement iterative linked list freeing
[Algorithmic_C.git]
/
TP5
/
exo4
/
liste_chainee.c
diff --git
a/TP5/exo4/liste_chainee.c
b/TP5/exo4/liste_chainee.c
index add8b224f8d3bab04fc1d614ba66680c3ce53a9d..d8ae698a48a8140a3a69afd1ecdc5589fd72bcbf 100644
(file)
--- a/
TP5/exo4/liste_chainee.c
+++ b/
TP5/exo4/liste_chainee.c
@@
-142,12
+142,12
@@
Liste supprimer_iter(element e, Liste L)
free(L);
pavant->suivant = NULL;
return pdebut;
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;
} 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);
} else if (L->valeur == e) {
Cellule *pcourant = L;
free(L);
@@
-177,7
+177,11
@@
Liste inverser_rec(Liste L)
void liberer_iter(Liste L)
{
void liberer_iter(Liste L)
{
-
+ while (!L) {
+ Cellule *pcourant = L;
+ free(L);
+ L = pcourant->suivant;
+ }
}
void liberer_rec(Liste L)
}
void liberer_rec(Liste L)
@@
-219,7
+223,8
@@
int main()
L = supprimer_iter(2, L);
visualiser_rec(L);
visualiser_iter(L);
L = supprimer_iter(2, L);
visualiser_rec(L);
visualiser_iter(L);
- liberer_rec(L);
+ //liberer_rec(L);
+ liberer_iter(L);
/* ... */
}
/* ... */
}