1 /*******************************************************************************
2 Implantation contiguë d'un type Pile d'entiers
4 La pile est représentée par une structure:
5 un tableau représente les valeurs
6 un entier représente le nombre d'éléments de la pile
7 *******************************************************************************/
15 element tab
[LONG_PILE
];
27 return p
.nbre
== 0; /* ou return !p.nbre; */
30 element
sommet(Pile p
)
31 /* ATTENTION: consulter le sommet d'une pile vide n'a pas de sens */
34 printf("Erreur - pile vide\n");
37 return p
.tab
[p
.nbre
- 1];
40 Pile
empiler(element e
, Pile p
)
42 if (p
.nbre
== LONG_PILE
) {
43 printf("Erreur - pile pleine\n");
51 /* ATTENTION: supprimer le sommet d'une pile vide n'a pas de sens */
54 printf("Erreur - pile vide\n");
61 element
depiler2(Pile
* p
)
62 /* ATTENTION: la pile est modifiée */
64 /* ATTENTION: dépiler une pile vide n'a pas de sens */
66 printf("Erreur - pile vide\n");
69 return p
->tab
[p
->nbre
-- - 1];
72 /******************************************************************************/
81 for (i
= 0; i
< 20; i
++)
84 for (i
= 0; i
< 25; i
++)
85 printf("%d\n", depiler2(&p
));
88 /********************************************************************/