*******************************************************************************/
#include<stdio.h>
#include<stdlib.h>
-
+
typedef int element;
typedef struct cellule {
- element valeur;
- struct cellule *suivant;
+ element valeur;
+ struct cellule *suivant;
} Cellule, *Pile;
-
+
Pile pile_vide(void)
{
- return NULL;
+ return NULL;
}
int est_vide(Pile p)
{
- return (p==NULL); /* ou return !p; */
-}
+ return (p == NULL); /* ou return !p; */
+}
element sommet(Pile p)
/* ATTENTION: consulter le sommet d'une pile vide n'a pas de sens */
{
- if (est_vide(p))
- {
- printf("Erreur - pile vide\n");
- exit(-1);
- }
- return p->valeur; /* la pile n'est pas modifiée */
+ if (est_vide(p)) {
+ printf("Erreur - pile vide\n");
+ exit(-1);
+ }
+ return p->valeur; /* la pile n'est pas modifiée */
}
-Pile empiler(element e,Pile p)
+Pile empiler(element e, Pile p)
{
- Cellule * pc=(Cellule *)malloc(sizeof(Cellule));
- pc->valeur=e;pc->suivant=p;
- return pc;
+ Cellule *pc = (Cellule *) malloc(sizeof(Cellule));
+ pc->valeur = e;
+ pc->suivant = p;
+ return pc;
}
Pile depiler(Pile p)
/* ATTENTION: supprimer le sommet d'une pile vide n'a pas de sens */
{
- Cellule * pc=p;
- if (est_vide(p))
- {
- printf("Erreur - pile vide\n");
- exit(-1);
- }
- p=p->suivant;
- free(pc);
- return p;
+ Cellule *pc = p;
+ if (est_vide(p)) {
+ printf("Erreur - pile vide\n");
+ exit(-1);
+ }
+ p = p->suivant;
+ free(pc);
+ return p;
}
-element depiler2(Pile * p) /*ATTENTION: la pile est modifiée */
-/* ATTENTION: cette opération n'a pas de sens avec une pile vide */
+element depiler2(Pile * p)
{
- Cellule *pc=*p;
- element e;
- if (est_vide(*p))
- {
- printf("Erreur - pile vide\n");
- exit(-1);
- }
- e=(*p)->valeur;
- *p=(*p)->suivant;
- free(pc);
- return e;
+ /* ATTENTION: la pile est modifiée */
+ /* ATTENTION: cette opération n'a pas de sens avec une pile vide */
+ Cellule *pc = *p;
+ element e;
+ if (est_vide(*p)) {
+ printf("Erreur - pile vide\n");
+ exit(-1);
+ }
+ e = (*p)->valeur;
+ *p = (*p)->suivant;
+ free(pc);
+ return e;
}
-
/******************************************************************************/
int main()
-{Pile p;
- int i;
- p=pile_vide();
- for (i=0; i<20; i++) p=empiler(i,p);
- for (i=0; i<25; i++) printf("%d\n",depiler2(&p));
+{
+ Pile p;
+ int i;
+ p = pile_vide();
+ for (i = 0; i < 20; i++)
+ p = empiler(i, p);
+ for (i = 0; i < 25; i++)
+ printf("%d\n", depiler2(&p));
}
-/********************************************************************/
+/********************************************************************/
**************************************************************************/
#include <stdio.h>
#include <stdlib.h>
-
+
typedef int element;
-typedef struct cellule {element valeur;
- struct cellule *suivant; } Cellule;
-
-typedef struct file { Cellule *t, *q; } File; /* tête queue */
+typedef struct cellule {
+ element valeur;
+ struct cellule *suivant;
+} Cellule;
+
+typedef struct file {
+ Cellule *t, *q;
+} File; /* tête queue */
File file_vide(void)
-{
- File f={NULL,NULL};
- return f;
+{
+ File f = { NULL, NULL };
+ return f;
}
int est_vide(File f)
{
- return !f.t;
+ return !f.t;
}
element tete(File f)
/* ATTENTION: consulter la tête d'une File vide n'a pas de sens */
{
- if (est_vide(f)) {printf("Erreur - file vide\n"); exit(-1); }
- return f.t->valeur; /* la File n'est pas modifiée */
+ if (est_vide(f)) {
+ printf("Erreur - file vide\n");
+ exit(-1);
+ }
+ return f.t->valeur; /* la File n'est pas modifiée */
}
-File enfiler(element e,File f)
+File enfiler(element e, File f)
{
- Cellule *pc=(Cellule *)malloc(sizeof(Cellule));
- pc->valeur=e;pc->suivant=NULL;
-
- if (est_vide(f))
- f.t=f.q=pc; /* la cellule créée est à la fois tête et queue */
- else
- f.q=f.q->suivant=pc; /* la cellule créée est la nouvelle queue */
- return f;
+ Cellule *pc = (Cellule *) malloc(sizeof(Cellule));
+ pc->valeur = e;
+ pc->suivant = NULL;
+
+ if (est_vide(f))
+ f.t = f.q = pc; /* la cellule créée est à la fois tête et queue */
+ else
+ f.q = f.q->suivant = pc; /* la cellule créée est la nouvelle queue */
+ return f;
}
File defiler(File f)
/* ATTENTION: supprimer la tête d'une File vide n'a pas de sens */
{
- Cellule *pc=f.t;
- if (est_vide(f))
- {
- printf("Erreur - file vide\n");
- exit(-1);
- }
- if (f.t==f.q) f=file_vide(); /* la File n'avait plus qu'une seule cellule */
- else f.t=f.t->suivant; /* la queue ne change pas */
- free(pc);
- return f;
+ Cellule *pc = f.t;
+ if (est_vide(f)) {
+ printf("Erreur - file vide\n");
+ exit(-1);
+ }
+ if (f.t == f.q)
+ f = file_vide(); /* la File n'avait plus qu'une seule cellule */
+ else
+ f.t = f.t->suivant; /* la queue ne change pas */
+ free(pc);
+ return f;
}
-
-element defiler2(File *f) /* ATTENTION: la File est modifiée */
-/* ATTENTION: supprimer la tête d'une File vide n'a pas de sens */
+
+element defiler2(File * f)
{
- Cellule *pc=f->t;
- element e;
- if (est_vide(*f))
- {
- printf("Erreur - file vide\n");
- exit(-1);
- }
- e=f->t->valeur;
- if (f->t==f->q) *f=file_vide(); /* la File n'avait plus qu'une seule cellule */
- else f->t=f->t->suivant; /* la queue ne change pas */
- free(pc);
- return e;
+ /* ATTENTION: la File est modifiée */
+ /* ATTENTION: supprimer la tête d'une File vide n'a pas de sens */
+ Cellule *pc = f->t;
+ element e;
+ if (est_vide(*f)) {
+ printf("Erreur - file vide\n");
+ exit(-1);
+ }
+ e = f->t->valeur;
+ if (f->t == f->q)
+ *f = file_vide(); /* la File n'avait plus qu'une seule cellule */
+ else
+ f->t = f->t->suivant; /* la queue ne change pas */
+ free(pc);
+ return e;
}
-
/********************************************************************/
int main()
{
- File p;
- int i;
- p=file_vide();
- for (i=0; i<20; i++) p=enfiler(i,p);
- for (i=0; i<25; i++) printf("%d\n",defiler2(&p));
+ File p;
+ int i;
+ p = file_vide();
+ for (i = 0; i < 20; i++)
+ p = enfiler(i, p);
+ for (i = 0; i < 25; i++)
+ printf("%d\n", defiler2(&p));
}
-/********************************************************************/
+/********************************************************************/