小工具知识网

当前位置: 首页 > 行业知识 > C语言-简单的环形队列的源码示例

行业知识

C语言-简单的环形队列的源码示例

2026-10-30 08:12:43 来源:互联网转载

概述

��       环形队列(Circular Queue)是一种常见的数据结构,特别适用于在单片机等资源受限的环境下实现缓冲区或队列功能。下面是一个简单的环形队列的源码示例,用C语言实现:

()
#include #include #define QUEUE_SIZE 10// 定义环形队列结构体typedef struct {    uint8_t buffer[QUEUE_SIZE]; // 数据缓冲区    uint8_t head;                // 队头指针    uint8_t tail;                // 队尾指针    uint8_t count;               // 队列中元素数量} CircularQueue;// 初始化环形队列void initQueue(CircularQueue *q) {    q->head = 0;    q->tail = 0;    q->count = 0;}// 向队列中添加元素void enqueue(CircularQueue *q, uint8_t data) {    if (q->count buffer[q->tail] = data;        q->tail = (q->tail + 1) % QUEUE_SIZE;        q->count++;    } else {        printf("Queue is full, cannot enqueue!\n");    }}// 从队列中取出元素uint8_t dequeue(CircularQueue *q) {    if (q->count > 0) {        uint8_t data = q->buffer[q->head];        q->head = (q->head + 1) % QUEUE_SIZE;        q->count--;        return data;    } else {        printf("Queue is empty, cannot dequeue!\n");        return 0; // 返回一个特殊值表示队列为空    }}// 获取队列中元素数量uint8_t queueSize(CircularQueue *q) {    return q->count;}int main(void) {    CircularQueue q;    initQueue(&q);    // 向队列中添加元素    for (int i = 1; i  0) {        uint8_t data = dequeue(&q);        printf("%d ", data);    }    printf("\n");    return 0;}
()

上一篇:云服务器怎么架构?

下一篇:电脑版服务器怎么玩?