现有一个循环队列,其队头指针为 front,队尾指针为 rear,循环队列的总长度为 N,问怎么判断循环队列满了?
正确答案: D
front==rear
front==rear+1
front==rear%n
front==(rear+1)%n
- 当队列不为空时,front指向队列的第一个元素,rear指向队列最后一个元素的下一个位置。
- 当队列为空时,front=rear
- 队列满时:(rear+1)%maxsiz=front,少用一个存储空间,也就是数组的最后一个存数空间不用
最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是()
正确答案: B
(rear+1) MOD n=front
rear=front
rear+1=front
(rear-1) MOD n=front
循环队列的相关条件和公式:
1.队空条件:rear==front
2.队满条件:(rear+1) %QueueSIze==front,其中QueueSize为循环队列的最大长度
3.计算队列长度:(rear-front+QueueSize)%QueueSize
4.入队:(rear+1)%QueueSize
5.出队:(front+1)%QueueSize