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<stdio.h>
#include<stdlib.h>
#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));
}
-/********************************************************************/
+/********************************************************************/