假设以数组sequ[m]存放循环队列的元素,同时设变量rear和quelen分别指示循环队列中的队尾元素的位置和队列中内含元素的个数,试给出判别次循环队列中的堆满条件,并写出相应的入队和出队的算法
(rear+1)%m == (rear-quelen+m)%m
入队算法void EnQueue(ElemType sequ[], ElemType value)
{if((rear+1)%m == (rear-quelen+m)%m)
{printf("队列满!");return;
}
rear = (rear+1)%m;
sequ[rear] = value;
quelen++;
}
出队算法void DeQueue(ElemType sequ[], ElemType *value){if(quelen == 0)
{printf("队列空!");return;
}
*value = sequ[rear];
rear = (rear-1+m)%m;quelen--;
}