阅读以下说明和C函数,填补函数代码中的空缺,将解答填入答题纸的对应栏内。
[说明]
队列是一种常用的数据结构,其特点是先入先出,即元素的插入在表头、删除在表尾进行。下面采用顺序存储方式实现队列,即利用一组地址连续的存储单元存放队列元素,同时通过模运算将存储空间看作一个环状结构(称为循环队列)。
设循环队列的存储空间容量为MAXQSIZE,并在其类型定义中设置base、rear和length三个域变量,其中,base为队列空间的首地址,rear为队尾元素的指针,length表示队列的长度。
#define MAXQSIZE 100 typedef struct { QElemType *base; /*循环队列的存储空间首地址*/ int rear; /*队尾元素索引*/ int length; /*队列的长度*/ }SqQueue;例如,容量为8的循环队列如下图所示,初始时创建的空队列如下图(a)所示,经过一系列的入队、出队操作后,队列的状态如下图(b)所示(队列长度为3)。

下面的C函数1、C函数2和c函数3用于实现队列的创建、插入和删除操作,请完善这些代码。
[C函数1]创建一个空的循环队列。
[C函数1]创建一个空的循环队列。 int InitQueue(SqQueue *Q) /*创建容量为MAXQSIZE的空队列,若成功则返回1;否则返回0*/ { Q->base=(QElemType *)malloc(MAXQSIZE* ______}; if (!Q->baSe)return 0; Q->length=0; Q->rear=0; return 1; }/*InitQueue*/ [<strong>[C函数2]</strong>]元素插入循环队列。 int EnQueue(SqQueue *Q,QElemType e) /*元素e入队,若成功则返回1;否则返回0*/ { if(Q->length>=MAXQSIZE.return 0; Q->rear= ______; Q->base[Q->rear]=e; ______; return 1; }/*EnQueue*/ [C函数3]元素出循环队列。 int DeQueue(SqQueue *Q,QElemType *e) /*若队列不空,则删除队头元素,由参数e带回其值并返回1;否则返回0*/ { if(______)return 0; *e=Q->base[(Q->rear-Q->length+1+MAXQSIZE.%MAXQSIZE.; ______; return 1; }/*DeQueue*/