数据结构循环队列刷题

如题图所示,利用同一循环向量空间实现两个队列,其类型Queue2定义如下:

typedef struct{DataType data[MaxSize];int :[ront[2],length[2];)Queue2;

对于i=0或l ,front[i]和length[i-]分别为第i 个队列的队头位置和实际长度。分别写出

这两个队列满的条件。
image.png
答案是:
队列0满的条件:(Q.front[0]+Q.length[0])%MaxSize == Q.front[1];
队列1满的条件:(Q.front[1]+Q.length[1])%MaxSize == Q.front[0];

请问大牛, 这个图该怎么看? 看不懂,网上没有找到资料. 书上说的循环队列满的条件是 (rear+1)%maxsize=front 这个题,看不懂.

阅读 2.8k
1 个回答

queue0满的不就是他的尾达到了queue1的头么?

auto queue0_head = Q.front[0], queue1_head = Q.front[1];
auto queue0_tail = (queue0_head + Q.length[0]) % MaxSize;
auto queue_0_full = queue0_tail == queue1_head;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题