#include<iostream>
using namespace std;
const int maxSize = 100;
typedef struct{
int data[maxSize];
int front;
int rear;
}SqQueue;
void initQueue(SqQueue &qu){
qu.front = qu.rear = 0;
}
int isEmpty(SqQueue qu){
if(qu.front == qu.rear)
return 1;
else
return 0;
}
int Push(SqQueue &qu,int x){
if((qu.rear+1)%maxSize == qu.front)//队满
return 0;
qu.rear = (qu.rear+1)%maxSize;
qu.data[qu.rear] = x;
return 1;
}
int Pop(SqQueue &qu,int &x){
if(qu.front == qu.rear)
return 0;
qu.front = (qu.front+1)%maxSize;
x = qu.data[qu.front];//先移位再取值
return 1;
}
int getfront(SqQueue qu,int &x){
if(qu.rear == qu.front)
return 0;
x = qu.data[(qu.front+1)%maxSize];
return 1;
}
int getrear(SqQueue &qu,int &x){
if(qu.rear == qu.front)
return 0;
x = qu.data[qu.rear];
return 1;
}
int main(){
SqQueue qu;
initQueue(qu);
Push(qu,11);
Push(qu,3);
Push(qu,5);
int x;
getfront(qu,x);
cout<<x<<endl;
getrear(qu,x);
cout<<x<<endl;
Pop(qu,x);
getfront(qu,x);
cout<<x<<endl;
getrear(qu,x);
cout<<x<<endl;
return 0;
}