Day6:循环队列的C语言实现

1. 结构体定义

typedef struct {
    int data[MAXSIZE];      // 队列数据
    int qFront, qRear;      // 队列头、尾指针
}CycleQueue;

2. 初始化

void CycleQueueInit(CycleQueue *cq)
{
    cq->qFront = 0;
    cq->qRear = 0;
}

3. 队列判空

int CycleQueueEmpty(CycleQueue *cq)
{
    return cq->qFront == cq->qRear ? 1 : -1;
}

4. 队列判满

int CycleQueueFull(CycleQueue *cq)      // 区别队列空和满,采取牺牲空间法
{
    return (cq->qRear + 1) % MAXSIZE == cq->qFront ? 1 : -1;
}

5. 入队

int CycleQueueEnQueue(CycleQueue *cq, int e)
{
    if(CycleQueueFull(cq) > 0)
        return -1;
    cq->data[cq->qRear] = e;
    cq->qRear = (cq->qRear + 1) % MAXSIZE;
    return 1;
}

6. 出队

int CycleQueueDeQueue(CycleQueue *cq, int *e)
{
    if(CycleQueueEmpty(cq) > 0)
        return -1;
    *e = cq->data[cq->qFront];
    cq->qFront = (cq->qFront + 1) % MAXSIZE;
    return 1;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值