如果希望循环队列中的元素都能得到利用,则需要设置一个标志域tag,并以tag的值为0或1来区分尾指针
1. (习题集3.29)如果希望循环队列中的元素都能得到利用,则需设置一个标志域tag,并以tag的值为0或1来区分,尾指针和头指针值相同时的队列状态是“空”还是“满”。试编写与此结构相应的入队列和出队列的算法,并从时间和空间角度讨论设标志和不设标志这两种方法的使用范围(如当循环队列容量较小而队列中每个元素占的空间较多时,哪一种方法较好)。 2. (习题集3.30)假设将循环队列定义为:以域变量rear和length分别指示循环队列中队尾元素的位置和内含元素的个数。试给出此循环队列的队满条件,并写出相应的入队列和出队列的算法。
intEnQueue(CirQueue*Q,DataType x)
{
if Q->tag==1 return 0;
Q->data[Q->rear]=x;
Q->rear=(Q->rear+1)%MAXQSIZE
if(Q->rear==Q->front)Q->tag=1
return1:
}
intDeQueue(CirQueue*Q,DataType*x)
{
if((1))return0;
*x=Q->data[Q->front];
Q->front= (2) ;
(3) ;
return1;
}
(1)
(2)
(3)
以下是运用循环的方式实现的一个队列如果另外增加一个能够记录队列所含元素个数的结点,当头指针和尾指针重合时,倘若队中元素个数等于队的长度则队满,否则队空.
设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针rear=10(指向队尾元素),则该循环队列中共有元素个数为()。
A.5
B.15
C.35
D.40
设某循环队列的容量为50,如果头指针front=15(指向队头元素的前-位置),尾指针rear=10(指向队尾元素),则该循环队列中共有元素个数为()。
A.5
B.15
C.35
D.40
A.Q[4]
B.Q[5]
C.Q[14]
D.Q[15]
设某循环队列的容量为50,如果头指针front=45(指向队头元索的前一位置),尾指针Teatr=lO(指向队尾元素),则该循环队列中共有【 】个元素。
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!