#include <stdio.h>#include <stdlib.h>#define MAXQSIZE 100#define OK 1#define TRUE 1#define FALSE 0typedef int QElemType;typedef int Status;typedef struct SqQueue{ QElemType *base; int front; int rear; int tag;}SqQueue;Status InitQueue(SqQueue Q)//建立一个空表{ Q.base=(QElemType*)malloc(MAXQSIZE *sizeof(QElemType)); if(!Q.base) exit(0); Q.front=Q.rear=0; Q.tag=0; return OK;};Status EnQueue(SqQueue Q, QElemType e)//入队{ //差诶元素e为q的新的队尾元素 if(Q.rear==Q.front&&Q.tag==1) return 0; Q.base[Q.rear]=e; Q.rear=(Q.rear+1)%MAXQSIZE; if(Q.rear==Q.front) Q.tag=1; return OK;};Status DeQueue(SqQueue Q,QElemType e)//出队{ if(Q.front==Q.rear&&Q.tag==0) return 0; e=Q.base[Q.front]; Q.front=(Q.front+1)%MAXQSIZE; if(Q.front==Q.rear) Q.tag=0; return OK;}int main(){ int j,x; QElemType e; SqQueue Q; InitQueue(Q); printf("Please input the data ,end with # key!\n"); j=scanf("%d",&e); for(;j!=0;) { EnQueue(Q,e); j=scanf("%d",&e); } do { DeQueue(Q,&e); printf("%d",e); printf("Do u want to output another one? yes-1 no-0\n"); scanf("%d",&x); if(Q.front==Q.rear&&Q.tag==0) { printf("It is empty now!\n"); x=0; } }while(x==1); return 0;}



