e4e562c1a64fec0e0e228e31755296e03bb80383
1 /*******************************************************************************
2 Implantation d'un type Pile d'entiers sous forme chaînée
3 La pile est représentée par un pointeur.
4 La pile vide est représentée par NULL.
5 *******************************************************************************/
11 typedef struct cellule
{
13 struct cellule
*suivant
;
23 return (p
==NULL
); /* ou return !p; */
26 element
sommet(Pile p
)
27 /* ATTENTION: consulter le sommet d'une pile vide n'a pas de sens */
31 printf("Erreur - pile vide\n");
34 return p
->valeur
; /* la pile n'est pas modifiée */
37 Pile
empiler(element e
,Pile p
)
39 Cellule
* pc
=(Cellule
*)malloc(sizeof(Cellule
));
40 pc
->valeur
=e
;pc
->suivant
=p
;
45 /* ATTENTION: supprimer le sommet d'une pile vide n'a pas de sens */
50 printf("Erreur - pile vide\n");
58 element
depiler2(Pile
* p
) /*ATTENTION: la pile est modifiée */
59 /* ATTENTION: cette opération n'a pas de sens avec une pile vide */
65 printf("Erreur - pile vide\n");
75 /******************************************************************************/
80 for (i
=0; i
<20; i
++) p
=empiler(i
,p
);
81 for (i
=0; i
<25; i
++) printf("%d\n",depiler2(&p
));
83 /********************************************************************/