#include <stdio.h>
#include <stdlib.h>
#define MAXQSIZE 100
typedef int QElemType;
typedef struct{
QElemType *base;
int front;
int rear;
}Queue;
void Init(Queue &Q){
Q.base = (QElemType *)malloc(MAXQSIZE * sizeof(QElemType));
Q.front = Q.rear = 0;
printf("init success\n");
}
void Get(Queue Q){
for (int i=0;i<11;i++){
printf("data is %d\n",Q.base[i]);
}
}
int enQueue(Queue &Q,QElemType e){
if ((Q.rear+1)%MAXQSIZE==Q.front){
printf("pull");
return 0;
}
Q.base[Q.rear] = e;
Q.rear = (Q.rear+1)%MAXQSIZE;
return 1;
}
int outQueue(Queue &Q){
if (Q.front == Q.rear){
printf("empty");
return 0;
}
Q.base[Q.front] = 0;
Q.front = (Q.front+1)%MAXQSIZE;
return 0;
}
void Length(Queue Q){
int i;
i = (Q.rear-Q.front+MAXQSIZE) % MAXQSIZE;
printf("length is %d\n",i);
}
int main(){
Queue Q;
Init(Q);
for(int i=0;i<10;i++){
enQueue(Q,i+1);
}
outQueue(Q);
outQueue(Q);
enQueue(Q,2000);
Get(Q);
Length(Q);
}