定长队列的C实现

  以后有空就写个博客,算是技术笔记。

队列的特征是先进先出,可以满足许多应用场景需求,下面是自己用C实现的定长循环队列(代码有问题的话欢迎大家指正)。

//这个队列实现暂且定位为“单生产者单消费者模型”。
//在这个循环队列里,"队空"的条件是:队头索引 = 队尾索引, “队满”的条件是:队尾索引加1等于队头索引
//按照惯性思维,队头在左边,队尾在右边,入队是尾右移,索引值增加,出队是队头右移,索引增加。
#include <stdio.h>
#include <stdlib.h>
#define  MAXSIZE   16  //队列长度实际为(MAXSIZE - 1),另一个用来区分队空和队满
typedef  int  QElemType;
typedef  struct {
    QElemType  data[MAXSIZE];
    int        front;  //队列头索引
    int        rear;   //队列尾索引
}CircueQueue;

//创建一个循环队列并初始化为空。
CircueQueue *  CreateCircueQueue(void)
{
    CircueQueue  *q = NULL;
    q = (CircueQueue *)malloc(sizeof(CircueQueue));
    q -> front = 0;
    q -> rear  = 0;

    return  (p);
}
// 求循环队列中元素个数
int  CircueQueueLength(CircueQueue *q)
{
    return ((q->rear - q->front + MAXSIZE) % MAXSIZE);
}
//循环队列的“入队”操作
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值