Add TP5 skeleton
[Algorithmic_C.git] / TP5 / exo6 / file_chainee_a_completer.c
CommitLineData
16d1d589
JB
1/***********************************************************************
2 Implantation d'un type File d'entiers sous forme chaînée
3
4 La file est représentée par un doublet tête-queue de pointeurs
5 vers une cellule.
6 Le pointeur "tête" contient l'adresse de la tête de la file.
7 Le pointeur "queue" contient l'adresse de la queue de la file.
8 La file vide est représentée par le doublet NULL-NULL
9
10 Chaque cellule pointe vers la cellule suivante de la file
11 ou vers NULL si on est en queue de file.
12***********************************************************************/
13#include <stdio.h>
14#include <stdlib.h>
15
16typedef int element;
17
18typedef struct cellule
19{
20 element valeur;
21 struct cellule *suivant;
22} Cellule;
23
24typedef struct file
25{
26 Cellule *t, *q;
27} File; /* tête queue */
28
29
30File file_vide(void)
31{
32}
33
34int est_vide(File f)
35{
36}
37
38element tete(File f)
39/* ATTENTION: consulter la tête d'une File vide n'a pas de sens */
40{
41 /* la File n'est pas modifiée */
42}
43
44File enfiler(element e,File f)
45{
46}
47
48File defiler(File f)
49/* ATTENTION: supprimer la tête d'une File vide n'a pas de sens */
50{
51}
52
53element defiler2(File *f) /* ATTENTION: la File est modifiée */
54/* ATTENTION: supprimer la tête d'une File vide n'a pas de sens */
55{
56}
57
58
59/********************************************************************/
60int main()
61{File p;
62 int i;
63 p=file_vide();
64 for (i=0; i<20; i++) p=enfiler(i,p);
65 for (i=0; i<25; i++) printf("%d\n",defiler2(&p));}
66 /********************************************************************/
67