/********************************************************************/
#include <stdio.h>
#include <stdlib.h>
+#include <stdbool.h>
typedef int element;
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) {
+ if (compteur == 0)
+ printf("--Debut--\n");
+ 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;
+
+ _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) {
+ if (L->valeur == e) {
+ rt_val = true;
+ break;
+ }
+ L = L->suivant;
+ }
+ return rt_val;
}
Liste rechercher_rec(element e, Liste L)
{
- /* ... */
+ if (L->valeur != e && L->suivant != NULL)
+ {
+ return L = rechercher_rec(e, L->suivant);
+ }
}
Liste ajouter_rec(element e, Liste L)
L = ajouter_iter(2, L);
L = ajouter_iter(1, L);
L = ajouter_iter(3, L);
- printf("Saisir un entier a ajouter a la site\n");
+ L = ajouter_iter(4, L);
+ printf("Saisir un entier a chercher dans la liste L\n");
scanf("%d", &x);
- L = ajouter_iter(x, L);
- printf("longueur=%d\n", longueur_rec(L));
+ printf("L a pour longueur %d\n", longueur_rec(L));
visualiser_iter(L);
+ visualiser_rec(L);
+ if (rechercher_iter(x, L))
+ printf("L'element %d est present dans L\n", x);
+ else
+ printf("L'element %d n'est pas present dans L\n", x);
+ if (rechercher_rec(x, L) != NULL)
+ printf("L'element %d est present dans L\n", x);
+ else
+ printf("L'element %d n'est pas present dans L\n", x);
/* ... */
}