队列的顺序存储结构

定义:

#define maxsize n

typedef struct {

    elemtype  elem[maxsize];

    int  front;

    int rear;

} cqueuetp;

循环队列的基本操作

1.队列的初始化操作

void  init_cqueue(cqueuetp cq)

{

      cq.front = 0;

      cq.rear = 0;

}

2.判队空函数

int  empty_cqueue(cqueuetp  cq)

{

     return  cq.rear == cq.front ? 1 : 0;

}

3.求队列长度函数

int  size_cqueue(cqueuetp  cq)

{

     return  (maxsize + cq.rear - cq.front) % maxsize;

}

4.读队头元素函数

elemtype  head_cqueue(cqueuetp  cq)

{

     if( cq.front == cq.rear)

          return  NULL;

     else

          return   cq.elem[(cq.front + 1) % maxsize];

}

5.入队列操作

void  en_cqueue(cqueuetp cq, elemtype  x)

{

     if((cq.rear + 1)%maxsize == cq.front)

             printf("overflow");

     else {

            cq.rear = (cq.rear + 1)%maxsize;

            cq.elem[cq.rear] = x;

     }

}

6.出队列函数

elemtype  dl_cqueue(cqueuetp  cq)

{

     if(cq.front == cq.rear)

           return NULL;

     else {

           cq.front = (cq.front + 1) % maxsize;

           return  cq.elem[cq.front];

     }

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值