C语言数据结构——循环队列,数组方式实现

参考内容




队列数据类型结构体


typedef struct
{
   
          
    u16 Front, Rear;  //队首 队尾
    u16 Size;         //大小
    u8 * pData;       //数据指针
}xSuper_RingQueue_TypeDef;




一、队列初始化

在这里插入图片描述


/* 初始化队列 */
void vRingQueue_Init(xSuper_RingQueue_TypeDef * pQueue, u8 * pData, u16 size)
{
   
   
    pQueue->Front = pQueue->Rear = 0;
    pQueue->Size  = size;
    pQueue->pData = pData;
}



二、判断队列是否为空

在这里插入图片描述


/* 队列是否为空 */
u8 xRingQueue_IsEmpty(xSuper_RingQueue_TypeDef * pQueue)
{
   
   
    /* 队首与队尾相等队列为空 */
    if (pQueue->Front == pQueue->Rear) return 1;
    else                               return 0;
}



三、判断队列是否已满

在这里插入图片描述


/* 队列是否已满 */
u8 xRingQueue_IsFull(xSuper_RingQueue_TypeDef * pQueue)
{
   
   
    /* 队尾下一个元素为队首队列已满 */
    if (((pQueue->Rear + 1) % pQueue->Size) == pQueue->Front) return 1;
    else                                                      return 0;
}



四、数据入队过程

在这里插入图片描述


/* 获取队列元素个数 */
u16 xRingQueue_GetCount(xSuper_RingQueue_TypeDef * pQueue)
{
   
   
    return ((pQueue->Rear 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值