对于一个顺序存储的队列,当队尾指针已经指向数组的最后一个位置时,如果还要继续入队,应该如何处理?
答案解析
核心考点说明:本题考察顺序队列的循环队列特性。
解题思路分析:当队尾指针指向数组最后位置且数组未满时,采用循环队列的方式,可以将新元素存放在数组开头。
选项分析:
A. 覆盖数组的第一个位置:当队尾指针指向数组末尾,而队列并未满时,应该使用循环队列方式,覆盖第一个位置不合适,错误。
B. 报错,队列已满:队列的满的条件需要同时考虑队头指针和队尾指针,不单纯是指向末尾,错误。
C. 自动扩展数组容量:顺序队列的本质容量固定,需要额外的操作进行扩容,不是直接方式,错误。
D. 移动队头指针:当队列满时,移动队头指针是出队操作,与入队无关,错误。正确的做法应该是在判断队列不满的情况下,将新的元素放入数组开头,需要循环队列的概念。虽然选项没有直接说明循环队列的操作,但该问题背景下最合理的处理就是循环队列,因此没有其他符合题意的选项,该题可以理解为默认读者知道循环队列的概念。
易错点提醒:顺序队列容易产生假溢出,需要通过循环队列来解决这个问题。
正确答案:A