TP5: move corrections in their own directory
[Algorithmic_C.git] / TP5 / exo6 / file_chaine_correction.c
diff --git a/TP5/exo6/file_chaine_correction.c b/TP5/exo6/file_chaine_correction.c
deleted file mode 100644 (file)
index f3c3369..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-/**************************************************************************
- Implantation d'un type File d'entiers sous forme chaînée
-
-   La file est représentée par un doublet tête-queue de pointeurs 
-   vers une cellule.
-       Le pointeur "tête"  contient l'adresse de la tête  de la file.
-       Le pointeur "queue" contient l'adresse de la queue de la file.
-       
-       La file vide est représentée par le doublet NULL-NULL 
-       
-       Chaque cellule pointe vers la cellule suivante de la file
-ou vers NULL si on est en queue de file.                       
-
-**************************************************************************/
-#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 */
-
-File file_vide(void)
-{      
- File f={NULL,NULL};
- return f;
-}
-
-int est_vide(File f)
-{
- 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 */
-}
-
-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;
-}
-
-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;
-}
-       
-element defiler2(File *f)      /* 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));
-}
-/********************************************************************/
-