#include<stdio.h>
#include<stdlib.h>
#define maxsize 10
typedef struct {
int base;
int front;
int rear;
} SqQuence;
int initQuence(SqQuences) {
s->base=(int*)malloc(sizeof(int)*maxsize);
if(s->base) printf("初始化成功!");
else printf("初始化失败!");
s->front=s->rear=0;
}
int pushQuence(SqQuence *s) {
int num;
printf("\n请输入要入队的值:");
while((s->rear-s->front+maxsize)%maxsize<=maxsize-1) {
if((s->rear+1)%maxsize==s->front) {
printf("栈满");
break;
}
else{
scanf("%d",&num);
s->base[s->rear]=num;
s->rear=(s->rear+1)%maxsize;
}
}
printQuence(*s);
}
int printQuence(SqQuence s) {
for(int i=0; i<=(s.rear-s.front+maxsize)%maxsize-1; i++)
printf("%d ",s.base[i]);
}
int pullQuence(SqQuence *s) {
if(s->rear==s->front)
printf("栈空");
else {
int e;
e=s->base[s->front];
s->front=(s->front+1)%maxsize;
pushQuence(s);
}
}
int main()
{
SqQuence s;
initQuence(&s);
pushQuence(&s);
pullQuence(&s);
}