Les quatre opérations sur une pile sont : ajouter un élément au sommet de la pile (ou empiler), lire la valeur se trouvant au sommet d'une pile non-vide, tester si une pile est vide, retirer l'élément au sommet de la pile (ou dépiler).
En anglais, << pile >> se dit stack et les opérations portent respectivement les noms push , top , is_empty_stack , pop .
On va représenter les piles à l'aide de la structure suivante :
#define MAX 100
typedef struct {
int height;
stack_data content[MAX];
} stack;
Si p est une pile, son contenu est donné par
void mk_empty_stack(stack *p) {
p->height = 0;
}
int is_empty_stack(const stack *p) {
return p->height == 0;
}
void push(const stack_data x, stack *p) {
p->content[p->height] = x;
++ p->height;
}
stack_data top(const stack *p) {
return p->content[p->height - 1];
}
stack_data pop(stack *p) {
-- p-> height;
return p->content[p->height];
}
Ces fonctions ne sont pas entièrement satisfaisantes, car elles ne traitent pas des cas d'erreur.