1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
| //prgramme qui manipule la notion de la pile
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
#define maxp 100 //nobmre d'élément que la pile peut supporter
typedef int element;
typedef struct pile
{
element t[maxp];
int sommet;
}PILE;
PILE p;
//initialiser la pile
void initialiser(PILE p)
{
p.sommet=0;
//p.t[maxp]=NULL;
}
//teste si la pile est vide ou pas
int pile_vide(PILE p)
{
if(p.t[p.sommet]==0)
return 1;
return 0;
}
//teste si la pile est pleine ou pas
int pile_pleine(PILE p)
{
if(p.t[p.sommet]>=maxp)
return 1;
return 0;
}
//empiler de la pile
void emp(PILE &p,element x)
{
if(!pile_pleine(p))
{
p.t[p.sommet]=x;
p.sommet++;
}
else printf("la pile est pleine \n");
}
//depiler de la pile
void dep(PILE &p,element *x)
{
if(!pile_vide(p))
{
(*x)=p.t[p.sommet];
p.sommet=p.sommet-1;
}
else
printf("la pile est videeeee \n");
}
//afficher les éléments de la pile
void affich(PILE p)
{
int i;
for(i=p.sommet-1;i>=0;i--)
printf("%d\t",p.t[i]);
printf("\n");
}
//programme principale
int main()
{
int i;
element x;
initialiser(p);
emp(p,2);
emp(p,3);
emp(p,4);
emp(p,5);
affich(p);
printf("le nombre d'element de la pile est %d \n",p.sommet);
if(p.sommet==0)
printf("la pile est vide \n");
else
printf("la pile est remplie par des elements \n");
dep(p, &x);
printf("%d\n",x);
//dep(p,2);
//affich(p);
getch();
return 0;
} |
Partager