数据结构之循环队列
#include<bits/stdc++.h>
#define maxSize 10
typedef struct {
int rear,front;
int *base;
} SerQueue;
int inite(SerQueue &sq) {
sq.base = new int[maxSize];
if(!sq.base) {
return 0;
}
sq.rear = 0;
sq.front =0;
return 1;
}
int enterqueue(SerQueue &sq,int v) {
if((sq.rear+1)%maxSize==sq.front) {
printf("队列满\n");
return 0;
} else {
sq.base[sq.rear] = v;
sq.rear =(sq.rear+1)%maxSize;
}
}
int outQueue(SerQueue &sq,int *v) {
if(sq.front==sq.rear) {
printf("队列空\n");
return 0;
} else {
*v = sq.base[sq.front];
sq.front = (sq.front+1)%maxSize;
return 1;
}
}
int main(){
SerQueue s;
inite(s);
int a;
enterqueue(s,2);
enterqueue(s,3);
enterqueue(s,4);
enterqueue(s,5);
enterqueue(s,6);
enterqueue(s,2);
enterqueue(s,3);
enterqueue(s,4);
outQueue(s,&a);
printf("%d\n",a);
outQueue(s,&a);
printf("%d\n",a);
enterqueue(s,5);
enterqueue(s,6);
outQueue(s,&a);
printf("%d\n",a);
outQueue(s,&a);
printf("%d\n",a);
outQueue(s,&a);
printf("%d\n",a);
outQueue(s,&a);
printf("%d\n",a);
outQueue(s,&a);
printf("%d\n",a);
}