From 3f0f8bfdb820ec9e53057e6c6eeda27062166b47 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Tue, 7 Mar 2017 10:22:05 +0100 Subject: [PATCH] TP5: Re-add renamed file MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- .gitignore | 2 +- TP5/exo4/liste_chainee.c | 118 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 119 insertions(+), 1 deletion(-) create mode 100644 TP5/exo4/liste_chainee.c diff --git a/.gitignore b/.gitignore index d3a6eb9..b751f7b 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,7 @@ # editor trash *.swp -*.~ +*~ .build diff --git a/TP5/exo4/liste_chainee.c b/TP5/exo4/liste_chainee.c new file mode 100644 index 0000000..c46f149 --- /dev/null +++ b/TP5/exo4/liste_chainee.c @@ -0,0 +1,118 @@ +/********************************************************************/ +/* 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) +{ + int longueur = 0; + + if (!L) + return longueur; + + while ( L->suivant != NULL) + { + L = L->suivant; + longueur++; + } + return longueur; +} + +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); + /* ... */ +} + +/****************************************************************************/ -- 2.34.1