打印
[软件资料]

C语言循环队列

[复制链接]
506|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
szt1993|  楼主 | 2024-3-5 13:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
循环队列(Circular Buffer)

typedef struct {
    int buffer[SIZE];
    int head;
    int tail;
    int count;
} CircularBuffer;

void push(CircularBuffer *cb, int data) {
    if (cb->count < SIZE) {
        cb->buffer[cb->head] = data;
        cb->head = (cb->head + 1) % SIZE;
        cb->count++;
    }
}

int pop(CircularBuffer *cb) {
    if (cb->count > 0) {
        int data = cb->buffer[cb->tail];
        cb->tail = (cb->tail + 1) % SIZE;
        cb->count--;
        return data;
    }
    return -1; // Buffer is empty
}

循环队列是一种高效的数据结构,适用于缓冲区和数据流应用,例如串口通信接收缓冲。

使用特权

评论回复
评论
forgot 2024-3-13 09:57 回复TA
比较适合串口收发 
沙发
AdaMaYun| | 2024-3-5 14:11 | 只看该作者
循环队列是一种高效的数据结构,适用于缓冲区和数据流应用,方法真的很重要

使用特权

评论回复
板凳
LOVEEVER| | 2024-3-5 15:19 | 只看该作者
循环队列英中在串口等通信上较多

使用特权

评论回复
地板
星辰大海不退缩| | 2024-3-11 15:55 | 只看该作者
循环队列其实可以认为是一个头一个尾不停的进出数据

使用特权

评论回复
5
OKAKAKO| | 2024-3-11 16:33 | 只看该作者
循环队列都有哪些具体的实践应用呢?

使用特权

评论回复
评论
forgot 2024-3-13 09:57 回复TA
串口通讯 
6
小小蚂蚁举千斤| | 2024-3-18 13:24 | 只看该作者
循环队列是一种高效的数据结构,适用于缓冲区和数据流应用,例如串口通信接收缓冲。

使用特权

评论回复
7
小夏天的大西瓜| | 2024-3-19 16:46 | 只看该作者
循环队列是一种高效的数据结构,适用于缓冲区和数据流应用,例如串口通信接收缓冲。

使用特权

评论回复
8
中国龙芯CDX| | 2024-3-21 14:59 | 只看该作者
循环队列其实可以认为是一个头一个尾不停的进出数据的循环过程

使用特权

评论回复
9
jf101| | 2024-3-22 12:24 | 只看该作者
循环队列是一种高效的数据结构

使用特权

评论回复
10
szt1993|  楼主 | 2024-3-25 15:25 | 只看该作者
OKAKAKO 发表于 2024-3-11 16:33
循环队列都有哪些具体的实践应用呢?

其实这个应用非常多,数据通信、多数据存储都可以使用的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

260

主题

2193

帖子

4

粉丝