//顺序存储的队列
#include<stdio.h>
#include<stdlib.h>
#define ElemType int
#define MaxSize 10
//定义队列储存类型
typedef struct Qnode{
ElemType data[MaxSize];
int front;
int rear;
}*SqQueue,queue;
//初始化队列
bool InitQueue(SqQueue &q){ //传引用更加方便
q = (SqQueue)malloc(sizeof(queue));
q->front=q->rear=0;
printf("初始化成功!\n");
return true;
}
//判断队列是否为空
bool QueueEmpty(SqQueue q){
if(q->front==q->rear)
return true;
return false;
}
//入队操作
bool EnterQueue(SqQueue q,ElemType x){
if((q->rear+1)%MaxSize==q->front)
return false;
q->data[q->rear] = x;
q->rear = (q->rear+1)%MaxSize;
return true;
}
//出队操作
bool OutQueue(SqQueue q,ElemType &j){ //j用来保存出队数据 引用传递
if(QueueEmpty)
return false;
j = q->data[q->front];
q->front=(q->front+1)%MaxSize;
return true;
}
int main(){
SqQueue q;
int j,x;
scanf("%d",&x);
InitQueue(q);
if(QueueEmpty(q))
printf("队列为空\n");
if(EnterQueue(q,x))
printf("入队成功\n");
for(int i =0 ;i<q->rear;i++)
printf("%d\n",q->data[i]);
if(OutQueue(q,j))
printf("kon");
printf("%d",j);
return 0;
}