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
)
48 while ( L
->suivant
!= NULL
)
56 int longueur_rec(Liste L
)
61 void visualiser_iter(Liste L
)
66 void visualiser_rec(Liste L
)
71 int rechercher_iter(element e
, Liste L
)
76 Liste
rechercher_rec(element e
, Liste L
)
81 Liste
ajouter_rec(element e
, Liste L
)
86 Liste
supprimer_iter(element e
, Liste L
)
91 Liste
supprimer_rec(element e
, Liste L
)
96 Liste
inverser_iter(Liste L
)
101 Liste
inverser_rec(Liste L
)
106 /****************************************************************************/
112 L
= ajouter_iter(x
, L
);
113 printf("longueur=%d\n", longueur_iter(L
));
118 /****************************************************************************/