40366cc16db946278b8602a5f7187613a7a3a7eb
1 /**************************************************************************
2 Implantation contiguë d'un type File d'entiers
4 La File est représentée par une structure:
5 un tableau représente les valeurs
6 un entier représente la position de la tête de la File
7 un entier représente la position de la queue de la File
9 le tableau est exploité de façon circulaire.
10 **************************************************************************/
20 element tab
[LONG_FILE
];
25 File f
= { 0, 0 }; /* f.tete=f.queue=0 */
31 return f
.tete
== f
.queue
;
34 int est_pleine(File f
)
36 return (f
.queue
+ 1) % LONG_FILE
== f
.tete
;
40 /* ATTENTION: consulter la tête d'une File vide n'a pas de sens */
43 printf("Erreur - file vide\n");
49 File
enfiler(element e
, File f
)
52 printf("Erreur - file pleine\n");
56 f
.queue
= (f
.queue
+ 1) % LONG_FILE
;
61 /* ATTENTION: supprimer la tête d'une File vide n'a pas de sens */
64 printf("Erreur - file vide\n");
67 f
.tete
= (f
.tete
+ 1) % LONG_FILE
;
71 element
defiler2(File
* f
)
72 /*ATTENTION: la File est modifiée */
74 /* ATTENTION: défiler une File vide n'a pas de sens */ element e
;
76 printf("Erreur - file vide\n");
80 f
->tete
= (f
->tete
+ 1) % LONG_FILE
;
84 /*************************************************************************/
93 for (i
= 0; i
< 20; i
++)
96 for (i
= 0; i
< 25; i
++)
97 printf("%d\n", defiler2(&p
));
100 /********************************************************************/