首页 > 试题广场 >

若有一个 Queue 类型的队列 Q ,试问判断队列满的条件

[单选题]

设循环队列的结构是

typedef struct {

DataType data[MaxSize];

int front, rear;

} Queue;

若有一个 Queue 类型的队列 Q ,试问判断队列满的条件应为 _ _

  • Q.front==Q.rear;
  • Q.front-Q.rear==MaxSize;
  • Q.front+Q.rear==MaxSize;
  • Q.front==(Q.rear+1) % MaxSize;
答案应该是D吧
循环队列如果头指针在数组的下标为2的位置,尾指针在下标为1的位置,maxSize=7.此时队列满,但是Q.front-Q.rear==MaxSize是不满足的, 而 Q.front==(Q.rear+1) % MaxSize是满足的。

发表于 2017-05-11 09:43:19 回复(0)
这种题除非说明front指向队头前面一个否则默认指向队头,所以rear加一求余,如果说明,则应该rear等于front为满或者空。
发表于 2018-01-05 12:49:34 回复(0)
Q.front==(Q.rear+1) % MaxSize
发表于 2017-05-07 14:19:25 回复(0)
我也认为D
发表于 2017-08-04 10:26:48 回复(0)
没人管吗?错误的答案也拿出来让人做?
发表于 2017-05-24 23:43:43 回复(0)
我认为答案应该为D
发表于 2017-05-22 08:09:42 回复(0)