Tutoriel détaillé sur la file d'attente C++/langage C et implémentation complète du code

Tutoriel détaillé sur la file d'attente C++/langage C et implémentation complète du code

La file d'attente est une structure de données couramment utilisée, qui suit le principe du premier entré, premier sorti (FIFO), c'est-à-dire que les éléments qui entrent dans la file d'attente en premier seront retirés en premier. Les files d'attente peuvent être utilisées pour résoudre de nombreux problèmes pratiques, tels que la planification des tâches, la livraison des messages, etc. Dans ce didacticiel, nous présenterons le concept de files d'attente, les opérations de base et comment implémenter une file d'attente en langage C en détail.

Le concept de file d'attente

Une file d'attente est une structure de données linéaire qui comprend deux opérations de base : mettre en file d'attente et retirer de la file d'attente. L'opération de mise en file d'attente ajoute des éléments à la queue de la file d'attente, et l'opération de retrait de la file d'attente supprime et renvoie l'élément de tête de la file d'attente.

Fonctionnalités de la file d'attente :

  • Premier entré, premier sorti (FIFO) : les éléments qui entrent en premier dans la file d'attente seront retirés en premier.
  • L'opération de mise en file d'attente ne peut être effectuée qu'à une extrémité de la file d'attente, appelée la queue de la file d'attente.
  • Les opérations de retrait de la file d'attente ne peuvent être effectuées qu'à l'autre extrémité de la file d'attente, appelée tête de file d'attente.

Fonctionnement de base de la file d'attente

Les opérations de base de la file d'attente incluent :

  • Créer une file d'attente : initialise une file d'attente vide.
  • Opération de mise en file d'attente : ajoutez des éléments à la queue de la file d'attente.
  • Opération Dequeue : supprimer et renvoyer l'élément principal de la file d'attente.
  • Opération de jugement nul : détermine si la file d'attente est vide.
  • Jugement opération pleine : détermine si la file d'attente est pleine.
  • Obtenir l'élément principal de la file d'attente : renvoie l'élément principal de la file d'attente, mais ne le supprime pas.

Mise en place de la file d'attente

Voici le code pour implémenter une file d'attente en langage C :

#include <stdio.h>
#define MAX_SIZE 100

// 定义队列结构
typedef struct {
    
    
    int data[MAX_SIZE];
    int front;
    int rear;
} Queue;

// 初始化队列
void initQueue(Queue *queue) {
    
    
    queue->front = queue->rear = 0;
}

// 判断队列是否为空
int isEmpty(Queue *queue) {
    
    
    return queue->front == queue->rear;
}

// 判断队列是否已满
int isFull(Queue *queue) {
    
    
    return queue->rear == MAX_SIZE;
}

// 入队
void enqueue(Queue *queue, int item) {
    
    
    if (isFull(queue)) {
    
    
        printf("队列已满,无法入队!\n");
        return;
    }
    queue->data[queue->rear++] = item;
}

// 出队
int dequeue(Queue *queue) {
    
    
    if (isEmpty(queue)) {
    
    
        printf("队列为空,无法出队!\n");
        return -1;
    }
    return queue->data[queue->front++];
}

// 获取队列长度
int getSize(Queue *queue) {
    
    
    return queue->rear - queue->front;
}

// 打印队列中的所有元素
void printQueue(Queue *queue) {
    
    
    if (isEmpty(queue)) {
    
    
        printf("队列为空!\n");
        return;
    }
    printf("队列中的元素为:");
    for (int i = queue->front; i < queue->rear; i++) {
    
    
        printf("%d ", queue->data[i]);
    }
    printf("\n");
}

int main()
{
    
    
    Queue queue;
    initQueue(&queue);
  
    enqueue(&queue, 10);
    enqueue(&queue, 20);
    enqueue(&queue, 30);
  
    printQueue(&queue); // 队列中的元素为:10 20 30
  
    printf("出队元素:%d", dequeue(&queue)); // 出队元素:10
  
    printQueue(&queue); // 队列中的元素为:20 30
  
    return 0;
}

Dans le code ci-dessus, nous utilisons un tableau pour stocker les éléments de la file d'attente et utilisons deux pointeurs pour pointer respectivement vers la tête frontet rearla queue de la file d'attente. Grâce à l'opération modulo, la fonction de la file d'attente circulaire peut être réalisée.

Dans mainla fonction, nous initialisons d'abord une file d'attente vide, puis effectuons des opérations de mise en file d'attente et de retrait de la file d'attente, et sortons les résultats.

Résumer

La file d'attente est une structure de données couramment utilisée avec les caractéristiques du premier entré, premier sorti. Les files d'attente peuvent jouer un rôle important dans la résolution de problèmes pratiques. Grâce au code d'implémentation du langage C, nous pouvons mieux comprendre le concept et le fonctionnement de base de la file d'attente. J'espère que ce tutoriel pourra vous aider à comprendre les files d'attente !

Je suppose que tu aimes

Origine blog.csdn.net/qq_43884946/article/details/131475899
conseillé
Classement