GESP 五级 · GESP 202406 C++ 五级 第 16 题

判断题 · 答案 A · 考点:链表

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

题目

如果将双向链表的最后一个结点的下一项指针指向第一个结点,第一个结点的前一项指针指向最后一个结点,则该双向链表构成循环链表。

答案:A

考点

链表 讲解 →链表 真题汇总 →

解题思维

函数指针:bool (*Fx)(int) 声明一个指向"接收int返回bool"的函数的指针,可作为参数传递给其他函数(回调机制)。

常见错误

函数指针和普通指针不同,函数指针指向的是代码段中的函数入口地址。声明格式:返回类型 (*指针名)(参数列表)。

详细解析(节选)

【考点】循环链表|链表结构|指针操作

1. 考纲定位 五级 C++ 考纲中,链表是必考模块,但命题人借“双向链表变循环链表”的定义,考察考生对数据结构核心概念的理解——多数考生只背了线性链表的操作,对循环链表的“首尾相接”定义模糊,这是五级考生最明显的知识盲区。

2. 解题思维 解题时先定位两个术语:线性双向链表头尾指针均指向空;循环双向链表头尾指针互指。题目给出的操作(last->next = first且first->prev = last)正是将线性双向链表“闭环”的标准定义,因此直接判定为正确。

3. 陷阱拆解 选项 B 的设计利用考生“只知单向循环”或“忽略双向性”的误区,试图把单向循环链表(只需改last->next)混淆进来;或者把“头尾互指”当成单向链表特性。题目最阴险的细节是“双向链表”四个字——若考生只背了“循环链表”的通用定义而忘了“双向”需要在两个方向都闭环,就会误选 B。

4. 反命题思维 若题目改为“若只将最后一个结点的下一项指向第一个结点,则该双向链表构成循环链表”,答案必为错,因为单向闭环不足以构成双向循环链表。刷到类似题时,先问自己“双向链表和单向链表在循环定义上差在哪”,就能避开陷阱。

同考点真题

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