Tutorial detallado de la cola de lenguaje C/C++ e implementación completa del código

Tutorial detallado de la cola de lenguaje C/C++ e implementación completa del código

La cola es una estructura de datos de uso común, que sigue el principio de primero en entrar, primero en salir (FIFO), es decir, los elementos que ingresan primero a la cola serán eliminados primero. Las colas se pueden utilizar para resolver muchos problemas prácticos, como la programación de tareas, la entrega de mensajes, etc. En este tutorial, presentaremos el concepto de colas, las operaciones básicas y cómo implementar una cola en lenguaje C en detalle.

El concepto de cola

Una cola es una estructura de datos lineal que incluye dos operaciones básicas: poner y quitar cola. La operación de puesta en cola agrega elementos al final de la cola, y la operación de eliminación de cola elimina y devuelve el elemento principal de la cola.

Características de la cola:

  • Primero en entrar, primero en salir (FIFO): Los elementos que entren primero en la cola serán los primeros en salir.
  • La operación de poner en cola solo se puede realizar en un extremo de la cola, que se denomina la cola de la cola.
  • Las operaciones de eliminación de cola solo se pueden realizar en el otro extremo de la cola, conocido como la cabeza de la cola.

Funcionamiento básico de la cola

Las operaciones básicas de la cola incluyen:

  • Crear cola: inicializa una cola vacía.
  • Operación en cola: agregar elementos al final de la cola.
  • Operación Dequeue: elimina y devuelve el elemento principal de la cola.
  • Operación de juicio nulo: juzga si la cola está vacía.
  • Juicio operación completa: determina si la cola está llena.
  • Obtener el elemento de cabecera de la cola: devuelve el elemento de cabecera de la cola, pero no lo elimina.

Implementación de la cola.

El siguiente es el código para implementar una cola en lenguaje 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;
}

En el código anterior, usamos una matriz para almacenar los elementos de la cola y usamos dos punteros para apuntar al principio fronty rearal final de la cola, respectivamente. A través de la operación de módulo, se puede realizar la función de la cola circular.

En mainla función, primero inicializamos una cola vacía, luego realizamos operaciones de poner y quitar cola y mostrar los resultados.

Resumir

La cola es una estructura de datos de uso común con las características de primero en entrar, primero en salir. Las colas pueden desempeñar un papel importante a la hora de resolver problemas prácticos. A través del código de implementación del lenguaje C, podemos comprender mejor el concepto y el funcionamiento básico de la cola. ¡Espero que este tutorial pueda ayudarlo a comprender las colas!

Supongo que te gusta

Origin blog.csdn.net/qq_43884946/article/details/131475899
Recomendado
Clasificación