#include<stdio.h>
#define man 100
typedef struct
{int base[man];
int front, rear;
int queueSize;
}CirQueue; //循环队列类型
//初始化,构造空间大小为QSize的初始空队列Q
double InitCirQueue(CirQueue &Q, int QSize)
{ Q.rear=Q.front=0;
return 1;
}
double queueIsEmpty(CirQueue Q) //判空
{ return Q.queueSize==0;
}
void clearQueue(CirQueue &Q) //清空
{ Q.front=Q.rear=0;
}
double insertQueue(CirQueue &Q, int e) //入队
{ if((Q.rear+1)%man==Q.front) return 0;
Q.base[Q.rear]=e;
Q.rear=(Q.rear+1)%man;
return 1;
}
double deleteQueue(CirQueue &Q, int &e) //出队
{ if(Q.rear==Q.front) return 0;
e=Q.base[Q.front];
Q.front=(Q.front+1)%man;
return 1;
}
double getFront(CirQueue Q, int &e) //取队头元素
{ printf("%d",Q.base[Q.front]);
}
int queueLength(CirQueue Q) //求队长
{int a;
a=(Q.rear-Q.front+man)%man;
printf("%d",a);
}
int main(){
CirQueue Q;
InitCirQueue(Q,2);
clearQueue(Q);
printf("队列已经初始化");
printf("请选择接下来要做的\n");
int h;
int a;
int o;
int s;
while(h!=4){
printf("1.入队 2.出队\n");
printf("3.取队头元素 4.退出\n");
scanf("%d",&h);
switch(h){
case 1:
printf("请输入入队元素\n");
scanf("%d",&a);
insertQueue(Q,a);
break;
case 2:
deleteQueue(Q,s);
printf("出队\n");
printf("%d",&s) ;
printf("\n");
break;
case 3:
o=getFront(Q,s);
printf("%d",&o) ;
case 4:break;
default:printf("输错了");
}
}
return 0;
}