1 /********************************************************************/
2 /* Implantation d'une liste triee d'entiers */
3 /********************************************************************/
9 typedef struct cellule
{
11 struct cellule
*suivant
;
15 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 */ return pc
;
24 while (p1
&& (e
>= p1
->valeur
))
28 if (!p2
) /* insertion en tete */
31 else /* insertion entre p2 et p1 */
39 int longueur_iter(Liste L
)
45 int longueur_rec(Liste L
)
51 void visualiser_iter(Liste L
)
57 void visualiser_rec(Liste L
)
63 int rechercher_iter(element e
, Liste L
)
69 Liste
rechercher_rec(element e
, Liste L
)
75 Liste
ajouter_rec(element e
, Liste L
)
81 Liste
supprimer_iter(element e
, Liste L
)
86 Liste
supprimer_rec(element e
, Liste L
)
92 Liste
inverser_iter(Liste L
)
98 Liste
inverser_rec(Liste L
)
104 /****************************************************************************/
111 printf("longueur=%d\n",longueur_iter(L
));
115 /****************************************************************************/