程序填空 #define MAXQSIZE 5 /* 最大队列长度(对于循环队列,最大队列长度要减1) */ typedef struct { QElemType *base; /* 初始化的动态分配存储空间 */ int front; /* 头指针,若队列不空,指向队列头元素 */ int rear; /* 尾指针,若队列不空,指向队列尾元素的下一个位置 */ }SqQueue; bool InitQueue(SqQueue *Q) { /* 构造一个空队列Q */ (*Q).base=(QElemType *)malloc(MAXQSIZE*sizeof(QElemType)); if(!(*Q).base) /* 存储分配失败 */ return 0; (*Q).front=(*Q).rear=0; return 1; } bool QueueEmpty(SqQueue Q) { /* 若队列Q为空队列,则返回0,否则返回1 */ if(Q.front==Q.rear) /* 队列空的标志 */ return 0; else return 1; } int QueueLength(SqQueue Q) { /* 返回Q的元素个数,即队列的长度 */ return ________________; } bool EnQueue(SqQueue *Q,QElemType e) { /* 插入元素e为Q的新的队尾元素 */ if(___________________) /* 队列满 */ return 0; (*Q).base[(*Q).rear]=e; (*Q).rear=((*Q).rear+1)%MAXQSIZE; return 1; } bool DeQueue(SqQueue *Q,QElemType *e) { /* 若队列不空,则删除Q的队头元素,用e返回其值,并返回1;否则返回0 */ if((*Q).front==(*Q).rear) /* 队列空 */ return 0; *e=(*Q).base[(*Q).front]; (*Q).front=((*Q).front+1)%MAXQSIZE; return 1; } void main() { int i=0,k; QElemType d; SqQueue Q; InitQueue(&Q); printf("初始化队列后,队列空否?%u(1:空 0:否)\n",QueueEmpty(Q)); printf("请输入整型队列元素(不超过%d个),-1为提前结束符: ",MAXQSIZE-1); do { scanf("%d",&d); if(d==____) break; i++; EnQueue(&Q,d); }while(i<maxqsize-1); printf("队列长度为: %d\n",queuelength(q)); printf("现在队列空否?%u(1:空 0:否)\n",queueempty(q)); printf("连续%d次由队头删除元素,队尾插入元素:\n",maxqsize); for(k="1;k<=MAXQSIZE;k++)" { ____________; printf("删除的元素是%d,请输入待插入的元素: ",d); scanf("%d",&d); }>