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
| #include<stdio.h>
#include<StdAfx.h>
#include<conio.h>
#include<stdlib.h>
typedef struct element
{
int nombre;
element *suivant;
};
typedef struct pile
{
element *premier;
};
//typedef maillon* pile;
void init(pile *p)
{
p->premier=NULL;
}
int depiler(pile *mapile)
{
if(mapile==NULL)
{
printf("Pile vide !");
exit(EXIT_FAILURE);
}
int nbr_dep=0;
element *elm_dep= mapile->premier;
nbr_dep=elm_dep->nombre;
mapile->premier=elm_dep->suivant;
free(elm_dep);
return nbr_dep;
}
void empiler(pile *mapile,int entre)
{
//element *nve ; //exemple TEXTE[I] = malloc(strlen(INTRO)+1);
element *nve =(element*)malloc(sizeof(entre));
nve->nombre=entre;
nve->suivant=mapile->premier;
mapile->premier=nve;
}
void afficher(pile *mapile)
{
if(mapile==NULL)
{
exit(EXIT_FAILURE);
}
element *courant = mapile->premier;
while(courant!=NULL)
{
printf("sommet : \%d\n",courant);
courant=courant->suivant;
}
printf("\n");
}
void main()
{
pile *mapile = NULL;
empiler(mapile, 4);
empiler(mapile, 8);
empiler(mapile, 15);
empiler(mapile, 16);
empiler(mapile, 23);
empiler(mapile, 42);
printf("\nEtat de la pile :\n");
afficher(mapile);
printf("Je depile %d\n", depiler(mapile));
printf("\nEtat de la pile :\n");
afficher(mapile);
} |
Partager