#include<bits/stdc++.h>
using namespace std;
#define MAXSIZE 10
typedef struct MyQueue {
int data[MAXSIZE];
int front;
int rear;
}MyQueue;
MyQueue* create(){
MyQueue* myQueue = (MyQueue*) malloc(sizeof (MyQueue));
myQueue->front = 0;
myQueue->rear = 0;
return myQueue;
}
bool isEmpty(MyQueue* myQueue) {
if(myQueue->front == myQueue->rear) {
return true;
}else {
return false;
}
}
bool push(MyQueue* myQueue, int num) {
if((myQueue->rear+1)%MAXSIZE == myQueue->front) {
return false;
}
myQueue->rear = (myQueue->rear+1)%MAXSIZE;
myQueue->data[myQueue->rear] = num;
return true;
}
bool pop(MyQueue* myQueue) {
if(isEmpty(myQueue)) {
return false;
}
myQueue->data[myQueue->front] = 0;
myQueue->front = (myQueue->front+1)%MAXSIZE;
return true;
}
bool traverse(MyQueue* myQueue) {
if(isEmpty(myQueue)) {
return false;
}
int i = myQueue->front;
while (i!=myQueue->rear) {
i = (i+1)%MAXSIZE;
cout << myQueue->data[i] << " ";
}
cout << endl;
}
int main() {
MyQueue* myQueue = create();
cout << "请输入您要插入的数据个数:";
int n, num;
cin >> n;
cout << "请输入数据:";
for(int i=0; i<n; i++) {
cin >> num;
push(myQueue, num);
}
traverse(myQueue);
pop(myQueue);
traverse(myQueue);
pop(myQueue);
traverse(myQueue);
return 0;
}