- #include<stdio.h>
- #include<stdlib.h>
-
- typedef struct maillon *pmaillon;
- struct maillon
- {
- int nombre;
- pmaillon suivant;
- };
- void menu();
- void *alloue(int taille);
- pmaillon CreeMaillon(int valeur);
- pmaillon InsertionTete(pmaillon ptete,int valeur);
- pmaillon Depiler(pmaillon ptete);
- void TeteListe(pmaillon ptete);
- void PrintListe(pmaillon ptete);
- pmaillon ClearListe(pmaillon ptete);
- main()
- {
- int choix,n;
- pmaillon ptete=NULL;
- do
- {
- menu();
- scanf("%d",&choix);
- switch(choix)
- {
- case (1) :
- {printf("Entrez un nombre \n");
- scanf("%d",&n);
- ptete = InsertionTete(ptete,n);
- break;
- }
- case (2) :
- {ptete = Depiler(ptete);
- break;
- }
- case (3) :
- {PrintListe(ptete);
- break;
- }
- case (4) :
- {TeteListe(ptete);
- break;
- }
- case (5) :
- {ptete = ClearListe(ptete);
- break;
- }
- }
- }
- while(choix!=9);
- getch();
- }
-
-
-
-
- void menu()
- {
- printf("1. Empiler \n");
- printf("2. Depiler \n");
- printf("3. Imprimer la pile \n");
- printf("4. Afficher la tete de pile \n");
- printf("5. Vider la pile \n");
- printf("9. Fin \n");
- printf("Votre choix ? \n");
- }
-
- void *alloue(int taille)
- {
- void *p;
- p=(void*)malloc(taille);
- if(p==NULL)
- {
- printf("Erreur d allocation memoire\n");
- exit(1);
- }
- else return p;
- }
- pmaillon CreeMaillon(int valeur)
- {
- pmaillon p;
- p=(pmaillon)alloue(sizeof(struct maillon));
- p->nombre=valeur;
- p->suivant=NULL;
- return p;
- }
-
- pmaillon InsertionTete(pmaillon ptete,int valeur)
- {
- pmaillon p;
- p = CreeMaillon(valeur);
- p->suivant=ptete;
- return p;
- }
-
- pmaillon Depiler(pmaillon ptete)
- {
- pmaillon p;
- if(ptete == NULL)
- {
- fprintf(stderr,"Pile vide ! \n");
- getch();
- return ptete;
- }
- p=ptete;
- ptete=ptete->suivant;
- free(p);
- return ptete;
- }
- void TeteListe(pmaillon ptete)
- {
- if(ptete == NULL)
- {
- fprintf(stderr,"Pile vide ! \n");
- getch();
- }
- else printf("La tete est : %d",ptete->nombre);
- getch();
- }
-
- void PrintListe(pmaillon ptete)
- {
- pmaillon pcourant;
- if(ptete == NULL)
- {
- fprintf(stderr,"Liste Vide !");
- getch();
- }
- else
- {
- for(pcourant=ptete;pcourant != NULL ;pcourant=pcourant->suivant)
- printf("%d \n",pcourant->nombre);
- }
- }
-
- pmaillon ClearListe(pmaillon ptete)
- {
- pmaillon p;
- while(ptete != NULL)
- {
- p=ptete;
- ptete=ptete->suivant;
- free(p);
- }
- return ptete;
- }
-
-
#include<stdio.h>
#include<stdlib.h>
typedef struct maillon *pmaillon;
struct maillon
{
int nombre;
pmaillon suivant;
};
void menu();
void *alloue(int taille);
pmaillon CreeMaillon(int valeur);
pmaillon InsertionTete(pmaillon ptete,int valeur);
pmaillon Depiler(pmaillon ptete);
void TeteListe(pmaillon ptete);
void PrintListe(pmaillon ptete);
pmaillon ClearListe(pmaillon ptete);
main()
{
int choix,n;
pmaillon ptete=NULL;
do
{
menu();
scanf("%d",&choix);
switch(choix)
{
case (1) :
{printf("Entrez un nombre \n");
scanf("%d",&n);
ptete = InsertionTete(ptete,n);
break;
}
case (2) :
{ptete = Depiler(ptete);
break;
}
case (3) :
{PrintListe(ptete);
break;
}
case (4) :
{TeteListe(ptete);
break;
}
case (5) :
{ptete = ClearListe(ptete);
break;
}
}
}
while(choix!=9);
getch();
}
void menu()
{
printf("1. Empiler \n");
printf("2. Depiler \n");
printf("3. Imprimer la pile \n");
printf("4. Afficher la tete de pile \n");
printf("5. Vider la pile \n");
printf("9. Fin \n");
printf("Votre choix ? \n");
}
void *alloue(int taille)
{
void *p;
p=(void*)malloc(taille);
if(p==NULL)
{
printf("Erreur d allocation memoire\n");
exit(1);
}
else return p;
}
pmaillon CreeMaillon(int valeur)
{
pmaillon p;
p=(pmaillon)alloue(sizeof(struct maillon));
p->nombre=valeur;
p->suivant=NULL;
return p;
}
pmaillon InsertionTete(pmaillon ptete,int valeur)
{
pmaillon p;
p = CreeMaillon(valeur);
p->suivant=ptete;
return p;
}
pmaillon Depiler(pmaillon ptete)
{
pmaillon p;
if(ptete == NULL)
{
fprintf(stderr,"Pile vide ! \n");
getch();
return ptete;
}
p=ptete;
ptete=ptete->suivant;
free(p);
return ptete;
}
void TeteListe(pmaillon ptete)
{
if(ptete == NULL)
{
fprintf(stderr,"Pile vide ! \n");
getch();
}
else printf("La tete est : %d",ptete->nombre);
getch();
}
void PrintListe(pmaillon ptete)
{
pmaillon pcourant;
if(ptete == NULL)
{
fprintf(stderr,"Liste Vide !");
getch();
}
else
{
for(pcourant=ptete;pcourant != NULL ;pcourant=pcourant->suivant)
printf("%d \n",pcourant->nombre);
}
}
pmaillon ClearListe(pmaillon ptete)
{
pmaillon p;
while(ptete != NULL)
{
p=ptete;
ptete=ptete->suivant;
free(p);
}
return ptete;
}