ddd82b1f5ac8330bc70c06cf72aacc8ce323c19a
1 /********************************************************************/
2 /* Implantation d'une liste triee d'entiers */
3 /********************************************************************/
9 typedef struct cellule
{
11 struct cellule
*suivant
;
14 Liste
ajouter_iter(element e
, Liste L
)
16 Cellule
*pc
, *p1
= L
, *p2
= NULL
;
18 pc
= (Cellule
*) malloc(sizeof(Cellule
));
22 if (!L
) /* liste vide */
25 while (p1
&& (e
>= p1
->valeur
)) {
30 if (!p2
) { /* insertion en tete */
33 } else { /* insertion entre p2 et p1 */
41 int longueur_iter(Liste L
)
52 int longueur_rec(Liste L
)
55 return 1 + longueur_rec(L
->suivant
);
61 void visualiser_iter(Liste L
)
65 printf("--Debut--\n");
67 printf("L[%d]->value=%d\n", compteur
, L
->valeur
);
74 void _visualiser_rec(Liste L
, int compteur
)
77 printf("L[%d]->value=%d\n", compteur
, L
->valeur
);
79 _visualiser_rec(L
->suivant
, compteur
);
80 if (compteur
== (longueur_rec(L
) - 1))
86 void visualiser_rec(Liste L
)
91 printf("--Debut--\n");
92 _visualiser_rec(L
, compteur
);
95 int rechercher_iter(element e
, Liste L
)
100 Liste
rechercher_rec(element e
, Liste L
)
105 Liste
ajouter_rec(element e
, Liste L
)
110 Liste
supprimer_iter(element e
, Liste L
)
115 Liste
supprimer_rec(element e
, Liste L
)
120 Liste
inverser_iter(Liste L
)
125 Liste
inverser_rec(Liste L
)
130 /****************************************************************************/
135 L
= ajouter_iter(2, L
);
136 L
= ajouter_iter(1, L
);
137 L
= ajouter_iter(3, L
);
138 printf("Saisir un entier a ajouter a la liste L\n");
140 L
= ajouter_iter(x
, L
);
141 printf("L a pour longueur %d\n", longueur_rec(L
));
147 /****************************************************************************/