X-Git-Url: https://git.piment-noir.org/?p=Algorithmic_C.git;a=blobdiff_plain;f=TP5%2Fexo_c5%2Fpile_chaine_correction.c;h=acb8b6d3368d67f66fd0361f727965f3df3e6b71;hp=e4e562c1a64fec0e0e228e31755296e03bb80383;hb=67b4409586ad416765bb6304cf50b576df64dfcb;hpb=c31b68a4e24e74a20f09aa1d7b9906b58d4aa255 diff --git a/TP5/exo_c5/pile_chaine_correction.c b/TP5/exo_c5/pile_chaine_correction.c index e4e562c..acb8b6d 100644 --- a/TP5/exo_c5/pile_chaine_correction.c +++ b/TP5/exo_c5/pile_chaine_correction.c @@ -5,80 +5,81 @@ *******************************************************************************/ #include #include - + typedef int element; typedef struct cellule { - element valeur; - struct cellule *suivant; + element valeur; + struct cellule *suivant; } Cellule, *Pile; - + Pile pile_vide(void) { - return NULL; + return NULL; } int est_vide(Pile p) { - return (p==NULL); /* ou return !p; */ -} + return (p == NULL); /* ou return !p; */ +} 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->valeur; /* la pile n'est pas modifiée */ + if (est_vide(p)) { + printf("Erreur - pile vide\n"); + exit(-1); + } + return p->valeur; /* la pile n'est pas modifiée */ } -Pile empiler(element e,Pile p) +Pile empiler(element e, Pile p) { - Cellule * pc=(Cellule *)malloc(sizeof(Cellule)); - pc->valeur=e;pc->suivant=p; - return pc; + Cellule *pc = (Cellule *) malloc(sizeof(Cellule)); + pc->valeur = e; + pc->suivant = p; + return pc; } Pile depiler(Pile p) /* ATTENTION: supprimer le sommet d'une pile vide n'a pas de sens */ { - Cellule * pc=p; - if (est_vide(p)) - { - printf("Erreur - pile vide\n"); - exit(-1); - } - p=p->suivant; - free(pc); - return p; + Cellule *pc = p; + if (est_vide(p)) { + printf("Erreur - pile vide\n"); + exit(-1); + } + p = p->suivant; + free(pc); + return 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) { - Cellule *pc=*p; - element e; - if (est_vide(*p)) - { - printf("Erreur - pile vide\n"); - exit(-1); - } - e=(*p)->valeur; - *p=(*p)->suivant; - free(pc); - return e; + /* ATTENTION: la pile est modifiée */ + /* ATTENTION: cette opération n'a pas de sens avec une pile vide */ + Cellule *pc = *p; + element e; + if (est_vide(*p)) { + printf("Erreur - pile vide\n"); + exit(-1); + } + e = (*p)->valeur; + *p = (*p)->suivant; + free(pc); + return e; } - /******************************************************************************/ 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)); } -/********************************************************************/ +/********************************************************************/