若以域变量 rear 和 length 分别指示循环队列中队尾元素的位置和队列中元素的个数。请完成下面的入队列和出队列的算法:(西电 2004 年考研试题)
#define MAXQSIZE 100 // 最大队列长度
Type struct {
Qelemtype *base; //base 为队列所在区域的首地址
int length; // 队列长度
int rear; // 队尾元素位置
} SqQueue;
Status EnQueue(SqQueue &Q, Qelemtype e)
{
if ( 1 ) return ERROR; // 队列满,无法插入
Q.rear= 2 ; // 计算元素 e 的插入位置
3 = e; // 在队尾加入新的元素
Q.length++; // 队列长度加 1
return OK;
}
Status DeQueue(SqQueue &Q, Qelemtype &e) // 删除对头元素,并用 e 带回其值
{
if ( 4 )return ERROR; // 队列满
e=Q.base[ 5 ] ; // 取队头元素
Q . length --; // 队列长度减 1
return OK;
}