循环队列的数组实现!!

#include <stdio.h>
#define MAXSIZE 10
typedef struct 
{
int data[MAXSIZE];
int front,rear;
}*SeQueue;

int SeQueueInit(SeQueue Q)
{
Q->front=Q->rear=0;
return 1;
}
void SeQueueIn(SeQueue Q,int x)
{
if((Q->rear+1)%MAXSIZE == Q->front)
{
//差一个 认为是满
printf("IS Full!\n");
exit(0);
}
Q->rear = (Q->rear+1)%MAXSIZE;//计算队尾的长度
Q->data[Q->rear] = x;
}

int SeQueueOut(SeQueue Q)
{
int x;
if(Q->rear == Q->front)
{
printf("is Empty!");
exit(0);
}
Q->front=(Q->front+1)%MAXSIZE;
x=Q->data[Q->front];//读出队列头的元素
return x;

}
//求队列中的元素的个数
int SeQueueLen(SeQueue Q)
{
return (Q->front-Q->rear+MAXSIZE)%MAXSIZE;
}
int SeQueueEmpty(SeQueue Q)
{
if(Q->rear == Q->front)
{
//printf("is Empty!");
//exit(0);
return 1;
}
else
{
return 0;
}
}

int main()
{
SeQueue Q;
int n=7,i,x;
Q=(SeQueue)malloc(sizeof(SeQueue));
SeQueueInit(Q);

//scanf("%d",&n);

for(i=0;i<n;i++)
{
SeQueueIn(Q,(i+1) );
}
while(!SeQueueEmpty(Q))
{

x=SeQueueOut(Q);
SeQueueIn(Q,x);
x=SeQueueOut(Q);
printf("%d",x);
}
}
<script type="text/javascript" id="wumiiRelatedItems"> </script>
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值