Online C Compiler
Ouvrir dans le compilateur

É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.

Ouvrir dans le compilateur

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 compilateur

Ré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.