C语言环形队列程序

C语言环形队列程序

环形队列是一种常见的数据结构,它具有固定大小并使用循环方式来存储和访问数据元素。环形队列常用于需要对数据进行循环利用的场景,例如缓冲区管理、数据传输等。

下述的 C 语言环形队列程序实现了一个简单的环形队列,包括了队列的初始化、入队、出队、强制入队、强制入队多个元素、出队多个元素、清空队列、显示队列元素、获取队首元素和获取队列大小等操作。程序中使用了结构体来表示队列,并实现了相应的操作函数。通过这些函数,用户可以方便地对环形队列进行操作,包括数据的存储、获取和管理。

环形队列的特点是可以高效地利用内存空间,同时支持元素的循环利用。但需要注意的是,在使用环形队列时,需要格外小心队列的溢出和下溢问题,即队列满时的入队操作和队列空时的出队操作。除此之外,环形队列也需要考虑多线程并发操作时的同步与互斥问题。

#include <stdio.h>
#include <stdint.h>
#define MAX_SIZE 5

typedef struct {
   
    uint8_t items[MAX_SIZE];
    int front, rear;
} Queue;

// 初始化队列
void qu_init(Queue *q) {
   
    q->front = -1;
    q->rear = -1;
}

// 判断队列是否已满
int qu_is_full(Queue *q) {
   
    return (q->rear + 1) % MAX_SIZE == q->front;
}

// 判断队列是否为空
int qu_is_empty(Queue *q) {
   
    return q->front == -1;
}

// 入队
void qu_enqueue(Queue *q, uint8_t data) {
   
    if (qu_is_full(q)) {
   
        printf("Queue is full\n");
    } else {
   
        if (qu_is_empty(q)) {
   
            q->front = 0;
        }
        q->rear = (q->rear + 1) % MAX_SIZE;
        q->items[q->rear] = data;
        printf("%d enqueued to queue\n", data)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值