]>
Piment Noir Git Repositories - Algorithmic_C.git/blob - TP5/exo3/file_contigue.c
efdb67e0e768caab2040091c288e96985f88d659
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, {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 */
75 /* ATTENTION: défiler une File vide n'a pas de sens */
77 printf("Erreur - file vide\n");
81 f
->tete
= (f
->tete
+ 1) % LONG_FILE
;
85 /*************************************************************************/
94 for (i
= 0; i
< 20; i
++)
97 for (i
= 0; i
< 25; i
++)
98 printf("%d\n", defiler2(&p
));
101 /********************************************************************/