TP5 exo4: Implement recursive search function inside a linked list
[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 element valeur;
20 struct cellule *suivant;
21 } Cellule;
22
23 typedef struct file {
24 Cellule *t, *q;
25 } File; /* tête queue */
26
27 File file_vide(void)
28 {
29 }
30
31 int est_vide(File f)
32 {
33 }
34
35 element tete(File f)
36 /* ATTENTION: consulter la tête d'une File vide n'a pas de sens */
37 {
38 /* la File n'est pas modifiée */
39 }
40
41 File enfiler(element e, File f)
42 {
43 }
44
45 File defiler(File f)
46 /* ATTENTION: supprimer la tête d'une File vide n'a pas de sens */
47 {
48 }
49
50 element defiler2(File * f)
51 {
52 /* ATTENTION: la File est modifiée */
53 /* ATTENTION: supprimer la tête d'une File vide n'a pas de sens */
54 }
55
56 /********************************************************************/
57 int main()
58 {
59 File p;
60 int i;
61 p = file_vide();
62 for (i = 0; i < 20; i++)
63 p = enfiler(i, p);
64 for (i = 0; i < 25; i++)
65 printf("%d\n", defiler2(&p));
66 }
67
68 /********************************************************************/