2ec62dbaeecadc9333db2653406f61908ae44da4
[Algorithmic_C.git] / TP5 / exo6 / file_chainee_a_completer.c
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
16 typedef int element;
17
18 typedef struct cellule
19 {
20 element valeur;
21 struct cellule *suivant;
22 } Cellule;
23
24 typedef struct file
25 {
26 Cellule *t, *q;
27 } File; /* tête queue */
28
29
30 File file_vide(void)
31 {
32 }
33
34 int est_vide(File f)
35 {
36 }
37
38 element 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
44 File enfiler(element e,File f)
45 {
46 }
47
48 File defiler(File f)
49 /* ATTENTION: supprimer la tête d'une File vide n'a pas de sens */
50 {
51 }
52
53 element 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 /********************************************************************/
60 int 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