Édition pédagogique en français
File en C : principe FIFO
Gérez les éléments en attente avec des positions d’ajout et de retrait.

Une file rend les éléments dans leur ordre d’arrivée. enqueue ajoute à la fin, dequeue retire au début. Distinguez clairement les états vide et plein d’un indice valide.
Une file circulaire réutilise les positions libérées en ramenant les indices au début. Un compteur ou une case réservée distingue plein et vide. Une file linéaire simple peut atteindre la fin alors que des cases initiales sont libres.
Vérifiez capacité et état avant chaque opération. Faites un essai qui franchit la fin du tampon et confirmez que l’ordre d’arrivée est conservé.
Code source
#include <stdio.h>
#define SIZE 5
typedef struct {
int items[SIZE];
int front;
int rear;
} Queue;
void initQueue(Queue *q) {
q->front = -1;
q->rear = -1;
}
int isFull(Queue *q) { return q->rear == SIZE - 1; }
int isEmpty(Queue *q) { return q->front == -1 || q->front > q->rear; }
void enqueue(Queue *q, int val) {
if (isFull(q)) {
printf("Queue Full!\n");
return;
}
if (q->front == -1) q->front = 0;
q->items[++(q->rear)] = val;
}
int dequeue(Queue *q) {
if (isEmpty(q)) {
printf("Queue Empty!\n");
return -1;
}
return q->items[(q->front)++];
}
int main() {
Queue q;
initQueue(&q);
enqueue(&q, 100);
enqueue(&q, 200);
enqueue(&q, 300);
printf("Dequeued: %d\n", dequeue(&q));
printf("Dequeued: %d\n", dequeue(&q));
return 0;
}Ouvrir dans le compilateurRésultat attendu
Dequeued: 100 Dequeued: 200
Questions fréquentes
Pourquoi le code et certains résultats restent-ils en anglais ?
Les mots-clés C, les identifiants, les commentaires du programme et les sorties attendues restent ceux de la version originale pour conserver un code exécutable et des tests cohérents. Les explications et les consignes sont traduites.