#include<stdio.h>
#include<stdlib.h>
typedef struct queue{
int *base;
int front;
int rear;
}Queue;
bool full_queue(Queue *s)//判断队列是否已满
{
if((s->rear+1)%6==s->front)
return true;
else
return false;
}
bool em_queue(Queue *s)//判断队列是否为空
{
if(s->front==s->rear)
return true;
else
return false;
}
void init(Queue *s)//初始化
{
s->base=(int*)malloc(sizeof(int)*6);//申请可存放6个数据的内存空间
s->front=0;
s->rear=0;
}
int en_queue(Queue *s)//添加元素
{
int num;
if(full_queue(s))
{
printf("队列已满!");
return 0;
}
else
{
printf("请输入要添加的数据个数:");
scanf("%d",&num);
while(num--)
{
scanf("%d",&s->base[s->rear]);
s->rear=(s->rear+1)%6;
if(full_queue(s))
{
printf("队列已满!");
return 0;
}
}
}
}
void out_queue(Queue *s)//删除元素
{
if(em_queue(s))
{
printf("队列为空!");
}
else
{
s->front=(s->front+1)%6;
}
}
void traverse_queue(Queue *s)//遍历输出队列
{
int i=s->front;
while(i!=s->rear)
{
printf("%d ",s->base[i]);
i=(i+1)%6;
}
printf("\n");
}
int main()
{
Queue p,*s=&p;
init(s);
en_queue(s);
traverse_queue(s);
out_queue(s);
traverse_queue(s);
return 0;
}
循环队列的相关操作
最新推荐文章于 2021-04-07 21:08:53 发布