TP5: Implement iteratively searching an element in the linked list
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Tue, 7 Mar 2017 11:03:47 +0000 (12:03 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Tue, 7 Mar 2017 11:03:47 +0000 (12:03 +0100)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
TP5/exo4/liste_chainee.c

index ddd82b1f5ac8330bc70c06cf72aacc8ce323c19a..b21ad04a501b051e71c3ab463672fd364e3f9d0d 100644 (file)
@@ -3,6 +3,7 @@
 /********************************************************************/
 #include <stdio.h>
 #include <stdlib.h>
+#include <stdbool.h>
 
 typedef int element;
 
@@ -74,6 +75,8 @@ void visualiser_iter(Liste L)
 void _visualiser_rec(Liste L, int compteur)
 {
        if (L != NULL) {
+               if (compteur == 0)
+                       printf("--Debut--\n");
                printf("L[%d]->value=%d\n", compteur, L->valeur);
                compteur++;
                _visualiser_rec(L->suivant, compteur);
@@ -87,19 +90,23 @@ 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)
+bool rechercher_iter(element e, Liste L)
 {
-       /* ... */
+       bool rt_val = false;
+
+       while (L != NULL && L->valeur != e) {
+               L = L->suivant;
+       }
+       if (L->valeur == e) 
+               rt_val = true;
+       return rt_val;
 }
 
 Liste rechercher_rec(element e, Liste L)
 {
-       /* ... */
 }
 
 Liste ajouter_rec(element e, Liste L)
@@ -141,6 +148,8 @@ int main()
        printf("L a pour longueur %d\n", longueur_rec(L));
        visualiser_iter(L);
        visualiser_rec(L);
+       if (rechercher_iter(3, L))
+               printf("Element 3 est present dans L\n");
        /* ... */
 }