跳过正文
  1. 嵌入式学习笔记/
  2. 数据结构/

队列

·255 字·1 分钟·
目录
数据结构 - 这篇文章属于一个选集。
§ 5: 本文

队列是先进先出的数据结构,只允许从一段插入,另一端删除,进制访问除两端以外的一切数据

队列实现
#

typedef struct {
    int data[MAX_SIZE];
    int front;      // 队头指针
    int rear;       // 队尾指针
    int count;      // 元素数量
} ArrayQueue;

初始化
#

void initQueue(ArrayQueue *q) {
    q->front = 0;
    q->rear = 0;
    q->count = 0;
}

入队
#

// 入队操作
bool enqueue(ArrayQueue *q, int value) {
    if (isFull(q)) {
        printf("队列已满!\n");
        return false;
    }
    
    q->data[q->rear] = value;
    q->rear = (q->rear + 1) % MAX_SIZE;  // 循环队列
    q->count++;
    return true;
}

出队
#

// 出队操作
bool dequeue(ArrayQueue *q, int *value) {
    if (isEmpty(q)) {
        printf("队列为空!\n");
        return false;
    }
    
    *value = q->data[q->front];
    q->front = (q->front + 1) % MAX_SIZE;  // 循环队列
    q->count--;
    return true;
}

获取队头队列
#

// 获取队头元素
bool front(ArrayQueue *q, int *value) {
    if (isEmpty(q)) {
        return false;
    }
    *value = q->data[q->front];
    return true;
}
RuChen
作者
RuChen
数据结构 - 这篇文章属于一个选集。
§ 5: 本文