X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=TP5%2Fexo4%2Fliste_chainee.c;h=ddd82b1f5ac8330bc70c06cf72aacc8ce323c19a;hb=ca2c69d57d5ef355b879df233a8c868c66a4ae92;hp=7d550819392e5824b797f24f78b988e38c912710;hpb=43bff44a320b5da23600d46768a2fc2d8815f647;p=Algorithmic_C.git diff --git a/TP5/exo4/liste_chainee.c b/TP5/exo4/liste_chainee.c index 7d55081..ddd82b1 100644 --- a/TP5/exo4/liste_chainee.c +++ b/TP5/exo4/liste_chainee.c @@ -42,8 +42,7 @@ int longueur_iter(Liste L) { int longueur = 0; - while (L->suivant != NULL) - { + while (L != NULL) { L = L->suivant; longueur++; } @@ -52,17 +51,45 @@ int longueur_iter(Liste L) int longueur_rec(Liste L) { - /* ... */ + if (L != NULL) { + return 1 + longueur_rec(L->suivant); + } else { + return 0; + } } void visualiser_iter(Liste L) { - /* ... */ + int compteur = 0; + + printf("--Debut--\n"); + while (L != NULL) { + printf("L[%d]->value=%d\n", compteur, L->valeur); + L = L->suivant; + compteur++; + } + printf("--Fin--\n"); +} + +void _visualiser_rec(Liste L, int compteur) +{ + if (L != NULL) { + printf("L[%d]->value=%d\n", compteur, L->valeur); + compteur++; + _visualiser_rec(L->suivant, compteur); + if (compteur == (longueur_rec(L) - 1)) + printf("--Fin--\n"); + } + } void visualiser_rec(Liste L) { - /* ... */ + int compteur = 0; + + if (compteur == 0) + printf("--Debut--\n"); + _visualiser_rec(L, compteur); } int rechercher_iter(element e, Liste L) @@ -105,10 +132,15 @@ int main() { int x; Liste L = NULL; + L = ajouter_iter(2, L); + L = ajouter_iter(1, L); + L = ajouter_iter(3, L); + printf("Saisir un entier a ajouter a la liste L\n"); scanf("%d", &x); L = ajouter_iter(x, L); - printf("longueur=%d\n", longueur_iter(L)); + printf("L a pour longueur %d\n", longueur_rec(L)); visualiser_iter(L); + visualiser_rec(L); /* ... */ }