GESP 六级 · GESP 202509 C++ 六级 第 5 题

选择题 · 答案 A · 考点:数据结构

← 整套速查表 GESP 六级 全部真题

题目

循环队列常用于实现数据缓冲。假设一个循环队列容量为 $ 5 $(即最多存放 $ 4 $ 个元素,留一个位置区分空与满),依次进行操作:入队数据 $ 1 $、$ 2 $、$ 3 $,出队 $ 1 $ 个数据,再入队数据 $ 4 $ 和 $ 5 $,此时队首到队尾的元素顺序是( )。

答案:A

考点

数据结构

解题思维

图的存储方式:邻接矩阵(O(n²)空间,适合稠密图)、邻接表(O(n+m)空间,适合稀疏图)。

常见错误

有向完全图边数为n(n-1),无向完全图边数为n(n-1)/2。简单图不含自环和重边。

详细解析(节选)

【考点】循环队列|数据结构|栈与队列 🎯 考纲定位:循环队列(GESP 六级《数据结构》模块核心考点)。命题人卡住的是考生对"容量为 5 但最多存 4 个"这一经典设计的理解——很多学生只记"队首队尾",却忽略"空位判断"这一关键细节。此题是区分"栈"与"队列"的必考题,也是六级难度分级中"能正确模拟队列操作"的标志性题目。

🧠 解题思维:按操作顺序模拟队列变化。初始空队列→入 1(队首 1,队尾 1)→入 2(队首 1,队尾 2)→入 3(队首 1,队尾 3)→出 1(队首 2,队尾 3)→入 4(队首 2,队尾 4)→入 5(队首 2,队尾 5)。循环队列顺序就是队首到队尾元素序列。若用数组模拟,队首head每次出队head=(head+1)%5,队尾tail每次入队tail=(tail+1)%5,容量为 5 意味着tail=head时队列满,tail=head-1时队列空。

🪤 陷阱拆解:B 选项漏掉出队操作,C 选项把队列当成固定数组(未考虑循环特性),D 选项把插入顺序颠倒成栈行为。最阴险的陷阱是"容量 5 但最多存 4 个"——如果考生误以为能存 5 个,就会在出队后误判队尾位置,导致顺序错乱。A 选项正确,因为出队后队列长度减少 1,新入队 4、5 后长度恢复为 4,且顺序保持入队顺序。

🔄 反命题思维:若容量改为 6,入队 1-4 后出队 1 再入 5,顺序变为[2,3,4,5](仍为 4 个元素)。若改为栈操作,入队 1,2,3 后出队 1,再入 4,5,顺序是[4,5,3,2,1]。刷到此类题先问"容量限制是否影响元素数量",这是循环队列与线性队列的本质区别。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断