假设以数组Q[m]存放循环队列中的元素, 同时设置一个标志tag,以tag == 0和tag == 1来区别在队头指针(front)和队尾指针(rear)相等时,队列状态为“空”还是“满”。试编写与此结构相应的插入(enqueue)和删除(dlqueue)算法。

假设以数组Q[m]存放循环队列中的元素, 同时设置一个标志tag,以tag == 0和tag == 1来区别在队头指针(front)和队尾指针(rear)相等时,队列状态为“空”还是“满”。试编写与此结构相应的插入(enqueue)和删除(dlqueue)算法。


相关考题:

●在循环队列中用数组A[0.m-1]存放队列元素,其队头和队尾指针分别为front和rear,则当前队列中的元素个数是 (38) 。(38) A.(front-rear+1)%mB.(rear-front+1)% mC.(front-rear+m)% mD.(rear-front+m)% m

在循环队列中用数组A[0.m-1]存放队列元素,其队头和队尾指针分别为front和 rear,则当前队列中的元素个数是(38)。A.(front-rear+1)%mB.(rear-front+1)%mC.(front-rear+m)%mD.(rear-front+m)%m

如果希望循环队列中的向量单元都能得到利用,则可设置一个标志域tag,每当尾指针和头指针值相同时,以tag的值为O或1来区分队列状态是“空”还是“满”.请对下列函数填空,使其分别实现与此结构相应的入队列和出队列的算法.intEnQueue(CirQueue*Q,DataType x){if Q-tag==1 return 0;Q-data[Q-rear]=x;Q-rear=(Q-rear+1)%MAXQSIZEif(Q-rear==Q-front)Q-tag=1return1:}intDeQueue(CirQueue*Q,DataType*x){if((1))return0;*x=Q-data[Q-front];Q-front= (2) ;(3) ;return1;}(1)(2)(3)

在循环队列中用数组A[0.m-1]存放队列元素,其队头和队尾指针分别为front和rear,则当前队列中的元素个数是()。A.(front-rear+1)%mB.(rear-front+1)%mC.(front-rear+m)%mD.(rear-front+m)%m

在少用一个元素空间的循环队列 (m0为最大队列长度(以元素为单位),front和rear分别为队列的队头指针和队尾指针 ) 中,当队列非空时,若插入一个新的数据元素,则其队尾指针rear的变化是()A.rear==(front+1) % m0B.rear==(rear+1) % m0C.rear==(front+1)D.rear==(rear+1)

()循环队列Q[0..m-1]存放其元素用front和rear分别表示队头和队尾则循环队列空的条件是Q.rear==Q.front。

在少用一个元素空间的循环队列 (m0为最大队列长度(以元素为单位),front和rear分别为队列的队头指针和队尾指针 ) 中,当队列非满时,若删除一个数据元素,则其队头指针front的变化是()A.front==(rear+1) % m0B.front==(front+1)C.front==(rear+1)D.front==(front+1) % m0

假设以数组A[m]存放循环队列的元素,其头、尾指针分别为front和rear,front指示实际的队头元素,rear指向实际队尾元素的下一个元素位置,则当前队列中的元素个数为()。A.(rear-front+m)%mB.rear-front+1C.(front-rear+m)%mD.(rear-front+1)%m

判断一个循环队列(m0为最大队列长度(以元素为单位),front和rear分别为队列的队头指针和队尾指针 ) 为满队列的条件是()A.front == rearB.front != rearC.front == (rear+1) % m0D.front != (rear+1) % m0