#include #include #include "pile.h" #include "list.h" struct pile { list sommet; }; pile pil_creer (void) { pile p; p = (pile) malloc (sizeof (struct pile)); assert (p != NULL); p->sommet = NULL; return p; } void pil_detruire (pile p) { assert (pil_est_vide (p)); free (p); } int pil_est_vide (pile p) { return p->sommet == NULL; } void pil_empiler (pile p, void *info) { p->sommet = cons (info, p->sommet); } void * pil_depiler (pile p) { void *valeur; valeur = p->sommet->element; p->sommet = cdr_and_free (p->sommet); return valeur; } void * pil_valeur_sommet (pile p) { return p->sommet->element; }