在这里插入代码片
#include<stdio.h>
#define MAXSIZE 10
typedef struct{ //循环队列
int data[MAXSIZE];
int front,rear;
}SqQueue;
void InitQueue(SqQueue &queue){
queue.rear=queue.front=0;//rear始终指向队尾元素下一个空位置
}
int EnQueue(SqQueue &queue,int a){
if((queue.rear+1)%MAXSIZE==queue.front){//牺牲了一个存储单元
printf("队列满\n");
return 0;
}
queue.data[queue.rear]=a;
queue.rear=(queue.rear+1)%MAXSIZE;
return 1;
}
bool isEmpty(SqQueue queue){
if(queue.rear==queue.front){
printf("队列空\n");
return true;
}
else return false;
}
int DeQueue(SqQueue &queue,int a){
if(!isEmpty(queue)){
a=queue.data[queue.front];
queue.front=(queue.front+1)%MAXSIZE;
printf("%d\n",a);
return 1;
}
return 0;
}
void main(){
SqQueue queue;
int a;
InitQueue(queue);
scanf("%d",&a);
while(a!=-1000){
if(a==1000) //输入1000出队列
DeQueue(queue,a);
else
EnQueue(queue, a);
scanf("%d",&a);
}
}