X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=TP5%2Fexo1%2Fpile_contigue.c;h=d68d41b2bdbcf4043c3d5a6c949136ce782d0d92;hb=1960d1adb5b93ad8a7c0140af450790c572280df;hp=4a3adc0ef4e81e1308afad2f0485c668d5b032ce;hpb=16d1d589590215264ffec1c7af6fee2af81fb351;p=Algorithmic_C.git 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)); } -/********************************************************************/ +/********************************************************************/