X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=TP5%2Fexo4%2Fliste_a_completer.c;fp=TP5%2Fexo4%2Fliste_a_completer.c;h=b7494f0c97b524289cc547de39c1dfb5c164baa1;hb=16d1d589590215264ffec1c7af6fee2af81fb351;hp=0000000000000000000000000000000000000000;hpb=4aea40a102357e642edaf4315a1f6ca2630b2e18;p=Algorithmic_C.git diff --git a/TP5/exo4/liste_a_completer.c b/TP5/exo4/liste_a_completer.c new file mode 100644 index 0000000..b7494f0 --- /dev/null +++ b/TP5/exo4/liste_a_completer.c @@ -0,0 +1,116 @@ +/********************************************************************/ +/* Implantation d'une liste triee d'entiers */ +/********************************************************************/ +#include +#include + +typedef int element; + +typedef struct cellule { + element valeur; + struct cellule *suivant; +} Cellule, *Liste; + + +Liste ajouter_iter(element e, Liste L) +{Cellule *pc, *p1=L, *p2=NULL; + + pc = (Cellule *)malloc(sizeof(Cellule)); + pc->valeur=e; + pc->suivant=NULL; + + if (!L) /* liste vide */ return pc; + + while (p1 && (e >= p1->valeur)) + {p2 = p1; + p1 = p1->suivant;} + + if (!p2) /* insertion en tete */ + {pc->suivant = L; + L=pc; } + else /* insertion entre p2 et p1 */ + {p2->suivant = pc; + pc->suivant = p1; } + + return L; +} + + +int longueur_iter(Liste L) +{ + return 0; /* ... */ +} + + +int longueur_rec(Liste L) +{ + /* ... */ +} + + +void visualiser_iter(Liste L) +{ + /* ... */ +} + + +void visualiser_rec(Liste L) +{ + /* ... */ +} + + +int rechercher_iter(element e, Liste L) +{ + /* ... */ +} + + +Liste rechercher_rec(element e, Liste L) +{ + /* ... */ +} + + +Liste ajouter_rec(element e, Liste L) +{ + /* ... */ +} + + +Liste supprimer_iter(element e, Liste L) +{ + /* ... */ +} + +Liste supprimer_rec(element e, Liste L) +{ + /* ... */ +} + + +Liste inverser_iter(Liste L) +{ + /* ... */ +} + + +Liste inverser_rec(Liste L) +{ + /* ... */ +} + + +/****************************************************************************/ +int main() +{ + int x; + Liste L=NULL; + scanf("%d",&x); + L=ajouter_iter(x,L); + printf("longueur=%d\n",longueur_iter(L)); + visualiser_iter(L); + /* ... */ +} +/****************************************************************************/ +