From: Jérôme Benoit Date: Tue, 7 Mar 2017 09:10:21 +0000 (+0100) Subject: TP5: feed all exercices code skeleton to Lindent X-Git-Url: https://git.piment-noir.org/?p=Algorithmic_C.git;a=commitdiff_plain;h=1960d1adb5b93ad8a7c0140af450790c572280df TP5: feed all exercices code skeleton to Lindent Signed-off-by: Jérôme Benoit --- diff --git a/TP5/exo1/pile_contigue.c b/TP5/exo1/pile_contigue.c index 4a3adc0..d68d41b 100644 --- a/TP5/exo1/pile_contigue.c +++ b/TP5/exo1/pile_contigue.c @@ -4,59 +4,84 @@ La pile est représentée par une structure: un tableau représente les valeurs un entier représente le nombre d'éléments de la pile -*******************************************************************************/ +*******************************************************************************/ #include #include #define LONG_PILE 25 typedef int element; -typedef struct { int nbre; - element tab[LONG_PILE];} Pile; - +typedef struct { + int nbre; + element tab[LONG_PILE]; +} Pile; + Pile pile_vide(void) -{ Pile p; p.nbre=0; +{ + Pile p; + p.nbre = 0; return p; } int est_vide(Pile p) -{ return p.nbre==0; /* ou return !p.nbre; */ +{ + return p.nbre == 0; /* ou return !p.nbre; */ } element sommet(Pile p) /* ATTENTION: consulter le sommet d'une pile vide n'a pas de sens */ -{ if (est_vide(p)) { printf("Erreur - pile vide\n"); exit(-1); } - return p.tab[p.nbre-1]; +{ + if (est_vide(p)) { + printf("Erreur - pile vide\n"); + exit(-1); + } + return p.tab[p.nbre - 1]; } -Pile empiler(element e,Pile p) -{ if (p.nbre==LONG_PILE) { printf("Erreur - pile pleine\n"); exit(-1); } -p.tab[p.nbre++]=e; + +Pile empiler(element e, Pile p) +{ + if (p.nbre == LONG_PILE) { + printf("Erreur - pile pleine\n"); + exit(-1); + } + p.tab[p.nbre++] = e; return p; } Pile depiler(Pile p) /* ATTENTION: supprimer le sommet d'une pile vide n'a pas de sens */ -{ if (est_vide(p)) { printf("Erreur - pile vide\n"); exit(-1); } -p.nbre--; +{ + if (est_vide(p)) { + printf("Erreur - pile vide\n"); + exit(-1); + } + p.nbre--; return p; } -element depiler2(Pile *p) /* ATTENTION: la pile est modifiée */ -/* ATTENTION: dépiler une pile vide n'a pas de sens */ -{ if (est_vide(*p)) { printf("Erreur - pile vide\n"); exit(-1); } -return p->tab[p->nbre-- -1]; +element depiler2(Pile * p) +{ /* ATTENTION: la pile est modifiée */ + /* ATTENTION: dépiler une pile vide n'a pas de sens */ + if (est_vide(*p)) { + printf("Erreur - pile vide\n"); + exit(-1); + } + return p->tab[p->nbre-- - 1]; } -/******************************************************************************/ +/******************************************************************************/ int main() -{Pile p; - int i; +{ + Pile p; + int i; - p=pile_vide(); + p = pile_vide(); - for (i=0; i<20; i++) p=empiler(i,p); + for (i = 0; i < 20; i++) + p = empiler(i, p); - for (i=0; i<25; i++) printf("%d\n",depiler2(&p)); + for (i = 0; i < 25; i++) + printf("%d\n", depiler2(&p)); } -/********************************************************************/ +/********************************************************************/ diff --git a/TP5/exo2/pile_realloc.c b/TP5/exo2/pile_realloc.c index a41cdb7..cef3e17 100644 --- a/TP5/exo2/pile_realloc.c +++ b/TP5/exo2/pile_realloc.c @@ -1,65 +1,87 @@ /********************************************************************/ /* Implantation contiguë d'un type Pile d'entiers */ /* On rallonge le tableau par realloc quand il est plein */ -/********************************************************************/ +/********************************************************************/ #include #include #define LONG_PILE 5 typedef int element; -typedef struct { int nbre; - int taille_tab; - element *tab; } Pile; - +typedef struct { + int nbre; + int taille_tab; + element *tab; +} Pile; + Pile pile_vide(void) -{Pile p; p.nbre=0; p.taille_tab=LONG_PILE; - p.tab=(element *)calloc(p.taille_tab, sizeof(element)); - return p; +{ + Pile p; + p.nbre = 0; + p.taille_tab = LONG_PILE; + p.tab = (element *) calloc(p.taille_tab, sizeof(element)); + return p; } int est_vide(Pile p) -{return p.nbre==0; /* ou return !p.nbre; */ +{ + return p.nbre == 0; /* ou return !p.nbre; */ } element sommet(Pile p) /* ATTENTION: consulter le sommet d'une pile vide n'a pas de sens */ -{if (est_vide(p)) { printf("Erreur - pile vide\n"); exit(-1); } - return p.tab[p.nbre-1]; +{ + if (est_vide(p)) { + printf("Erreur - pile vide\n"); + exit(-1); + } + return p.tab[p.nbre - 1]; } -Pile empiler(element e,Pile p) -{if (p.nbre==p.taille_tab) - {printf("pile pleine %d - on la rallonge!\n",p.taille_tab); - p.taille_tab *=2; - p.tab=realloc(p.tab, p.taille_tab*sizeof(element)); - } - p.tab[p.nbre++]=e; - return p; +Pile empiler(element e, Pile p) +{ + if (p.nbre == p.taille_tab) { + printf("pile pleine %d - on la rallonge!\n", p.taille_tab); + p.taille_tab *= 2; + p.tab = realloc(p.tab, p.taille_tab * sizeof(element)); + } + p.tab[p.nbre++] = e; + return p; } Pile depiler(Pile p) /* ATTENTION: supprimer le sommet d'une pile vide n'a pas de sens */ -{if (est_vide(p)) { printf("Erreur - pile vide\n"); exit(-1); } - p.nbre--; - return p; +{ + if (est_vide(p)) { + printf("Erreur - pile vide\n"); + exit(-1); + } + p.nbre--; + return p; } -element depiler2(Pile *p) /* ATTENTION: la pile est modifiée */ -/* ATTENTION: dépiler une pile vide n'a pas de sens */ -{if (est_vide(*p)) { printf("Erreur - pile vide\n"); exit(-1); } - return p->tab[p->nbre-- -1]; +element depiler2(Pile * p) +{ /* ATTENTION: la pile est modifiée */ + /* ATTENTION: dépiler une pile vide n'a pas de sens */ if (est_vide(*p)) { + printf("Erreur - pile vide\n"); + exit(-1); + } + return p->tab[p->nbre-- - 1]; } -/********************************************************************/ + +/********************************************************************/ int main() -{Pile p; - int i; +{ + Pile p; + int i; - p=pile_vide(); + p = pile_vide(); - for (i=0; i<20; i++) p=empiler(i,p); + for (i = 0; i < 20; i++) + p = empiler(i, p); - for (i=0; i<25; i++) printf("%d\n",depiler2(&p)); + for (i = 0; i < 25; i++) + printf("%d\n", depiler2(&p)); } -/********************************************************************/ +/********************************************************************/ diff --git a/TP5/exo3/file_contigue.c b/TP5/exo3/file_contigue.c index 7908535..731d20b 100644 --- a/TP5/exo3/file_contigue.c +++ b/TP5/exo3/file_contigue.c @@ -14,57 +14,86 @@ #define LONG_FILE 25 typedef int element; -typedef struct { int tete; - int queue; - element tab[LONG_FILE]; } File; - +typedef struct { + int tete; + int queue; + element tab[LONG_FILE]; +} File; + File file_vide(void) -{ File f={0,0}; /* f.tete=f.queue=0 */ +{ + File f = { 0, 0 }; /* f.tete=f.queue=0 */ return f; } -int est_vide(File f) { return f.tete==f.queue; } +int est_vide(File f) +{ + return f.tete == f.queue; +} -int est_pleine(File f) { return (f.queue+1)%LONG_FILE==f.tete; } +int est_pleine(File f) +{ + return (f.queue + 1) % LONG_FILE == f.tete; +} element tete(File f) /* ATTENTION: consulter la tête d'une File vide n'a pas de sens */ -{ if (est_vide(f)) { printf("Erreur - file vide\n"); exit(-1); } -return f.tab[f.tete]; +{ + if (est_vide(f)) { + printf("Erreur - file vide\n"); + exit(-1); + } + return f.tab[f.tete]; } -File enfiler(element e,File f) -{ if (est_pleine(f)) { printf("Erreur - file pleine\n"); exit(-1); } - f.tab[f.queue]=e; f.queue=(f.queue+1)%LONG_FILE; + +File enfiler(element e, File f) +{ + if (est_pleine(f)) { + printf("Erreur - file pleine\n"); + exit(-1); + } + f.tab[f.queue] = e; + f.queue = (f.queue + 1) % LONG_FILE; return f; } File defiler(File f) /* ATTENTION: supprimer la tête d'une File vide n'a pas de sens */ -{ if (est_vide(f)) { printf("Erreur - file vide\n"); exit(-1); } - f.tete=(f.tete+1)%LONG_FILE; +{ + if (est_vide(f)) { + printf("Erreur - file vide\n"); + exit(-1); + } + f.tete = (f.tete + 1) % LONG_FILE; return f; } -element defiler2(File * f) /*ATTENTION: la File est modifiée */ -/* ATTENTION: défiler une File vide n'a pas de sens */ -{ element e; - if (est_vide(*f)) { printf("Erreur - file vide\n"); exit(-1); } -e=f->tab[f->tete]; - f->tete=(f->tete+1)%LONG_FILE; +element defiler2(File * f) +{ /*ATTENTION: la File est modifiée */ + /* ATTENTION: défiler une File vide n'a pas de sens */ element e; + if (est_vide(*f)) { + printf("Erreur - file vide\n"); + exit(-1); + } + e = f->tab[f->tete]; + f->tete = (f->tete + 1) % LONG_FILE; return e; } -/*************************************************************************/ +/*************************************************************************/ int main() -{File p; - int i; +{ + File p; + int i; - p=file_vide(); + p = file_vide(); - for (i=0; i<20; i++) p=enfiler(i,p); + for (i = 0; i < 20; i++) + p = enfiler(i, p); - for (i=0; i<25; i++) printf("%d\n",defiler2(&p)); + for (i = 0; i < 25; i++) + printf("%d\n", defiler2(&p)); } -/********************************************************************/ +/********************************************************************/ diff --git a/TP5/exo4/liste_a_completer.c b/TP5/exo4/liste_a_completer.c deleted file mode 100644 index b7494f0..0000000 --- a/TP5/exo4/liste_a_completer.c +++ /dev/null @@ -1,116 +0,0 @@ -/********************************************************************/ -/* 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); - /* ... */ -} -/****************************************************************************/ - diff --git a/TP5/exo5/pile_chainee_a_completer.c b/TP5/exo5/pile_chainee_a_completer.c index 1eede6d..3f2a5fb 100644 --- a/TP5/exo5/pile_chainee_a_completer.c +++ b/TP5/exo5/pile_chainee_a_completer.c @@ -9,13 +9,11 @@ typedef int element; -typedef struct cellule -{ - element valeur; +typedef struct cellule { + element valeur; struct cellule *suivant; } Cellule, *Pile; - Pile pile_vide(void) { } @@ -30,7 +28,7 @@ element sommet(Pile p) /* la pile n'est pas modifiée */ } -Pile empiler(element e, Pile p) +Pile empiler(element e, Pile p) { } @@ -39,17 +37,21 @@ Pile depiler(Pile p) { } -element depiler2(Pile * p) /*ATTENTION: la pile est modifiée */ -/* ATTENTION: cette opération n'a pas de sens avec une pile vide */ -{ +element depiler2(Pile * p) +{ /*ATTENTION: la pile est modifiée */ + /* ATTENTION: cette opération n'a pas de sens avec une pile vide */ } - /******************************************************************************/ int main() -{Pile p; - int i; - p=pile_vide(); - for (i=0; i<20; i++) p=empiler(i,p); - for (i=0; i<25; i++) printf("%d\n",depiler2(&p));} +{ + Pile p; + int i; + p = pile_vide(); + for (i = 0; i < 20; i++) + p = empiler(i, p); + for (i = 0; i < 25; i++) + printf("%d\n", depiler2(&p)); +} + /******************************************************************************/ diff --git a/TP5/exo6/file_chainee_a_completer.c b/TP5/exo6/file_chainee_a_completer.c index 2ec62db..34bffca 100644 --- a/TP5/exo6/file_chainee_a_completer.c +++ b/TP5/exo6/file_chainee_a_completer.c @@ -12,20 +12,17 @@ ***********************************************************************/ #include #include - + typedef int element; -typedef struct cellule -{ - element valeur; - struct cellule *suivant; +typedef struct cellule { + element valeur; + struct cellule *suivant; } Cellule; - -typedef struct file -{ - Cellule *t, *q; -} File; /* tête queue */ +typedef struct file { + Cellule *t, *q; +} File; /* tête queue */ File file_vide(void) { @@ -37,11 +34,11 @@ int est_vide(File f) element tete(File f) /* ATTENTION: consulter la tête d'une File vide n'a pas de sens */ -{ +{ /* la File n'est pas modifiée */ } -File enfiler(element e,File f) +File enfiler(element e, File f) { } @@ -49,19 +46,22 @@ File defiler(File f) /* ATTENTION: supprimer la tête d'une File vide n'a pas de sens */ { } - -element defiler2(File *f) /* ATTENTION: la File est modifiée */ -/* ATTENTION: supprimer la tête d'une File vide n'a pas de sens */ -{ -} +element defiler2(File * f) +{ /* ATTENTION: la File est modifiée */ + /* ATTENTION: supprimer la tête d'une File vide n'a pas de sens */ +} /********************************************************************/ int main() -{File p; - int i; - p=file_vide(); - for (i=0; i<20; i++) p=enfiler(i,p); - for (i=0; i<25; i++) printf("%d\n",defiler2(&p));} +{ + File p; + int i; + p = file_vide(); + for (i = 0; i < 20; i++) + p = enfiler(i, p); + for (i = 0; i < 25; i++) + printf("%d\n", defiler2(&p)); +} + /********************************************************************/ - \ No newline at end of file