阅读以下代码,visited 起到的作用是( )。 
看到visited数组,先别急着选A,要问自己:遍历是谁干的?visited是谁干的?DFS里visited是防止回头路,BFS里visited是防止重复入队,最短路径得记前驱,遍历动作得靠栈或队列。
学生最容易把visited当成‘遍历引擎’,觉得没它图就走不动,于是选A;或者看到visited就联想BFS队列防重,误选B;还有少数人觉得标记了就能还原路径,选D。其实visited就是个‘防回头’的备忘录,谁用、怎么用,得分代码里的递归或队列逻辑。
【考点】图的遍历|深度优先搜索|访问标记
1. 考纲定位:GESP 七级算法模块。这道题考的不是代码怎么写,而是对visited数组在 DFS 中角色的理解。命题人故意把‘遍历动作’和‘访问记录’混在一起,想看学生能不能分清‘谁在走路’和‘谁在记路’。
2. 解题思维:拿到题先问三个问题——遍历靠什么驱动?visited 存什么?最短路径要记什么? 遍历动作靠递归(栈)或显式栈,visited 只负责标记‘这个点已经走过’,避免重复访问;最短路径需要记录每个点的前驱节点(parent),光有 visited 无法还原路径。
3. 陷阱拆解: A 项‘实现遍历过程’错在把辅助数组当核心逻辑,遍历由递归/循环驱动,visited 只是辅助; B 项‘广度优先’偷换场景,本题是 DFS,BFS 虽然也用 visited 防重复入队,但题干没提队列; D 项‘最短路径’需要记录前驱节点,仅标记无法还原路径; C 项‘记录深搜时节点的访问顺序’表述不严谨——visited 只记录‘是否访问过’,顺序由 DFS 递归隐式决定,但相比其他选项,C 最贴近 visited 在 DFS 中的真实作用。
4. 反命题思维:若改成‘图中最多访问几次某节点’——答案变‘一次’;若改成‘记录路径’——需额外数组。刷到类似题先问‘命题人想考我什么’。
【考频与趋势】 图的基本概念在题库共考过 281 题,覆盖 11 个级别,近年高频:2023 年 36 题、2024 年 61 题、2025 年 58 题、2026 年 71 题;GESP 七级占 85 题,是重灾区。 图的遍历仅 4 题(2013、2016、2017、2023 各一),但 2023 年同时考了 36 题图基本概念,说明命题人正把‘遍历’与‘图基础’融合考查。
【预测】 基于 2023-2026 年图基本概念暴涨(年均 50+ 题)且遍历题稀缺,未来 GESP 七级仍会高频考图,但大概率继续用‘基本概念 + 遍历细节’组合题(如本题)来挖坑,纯遍历题可能依旧少见。暂无足够依据预测具体年份或题型变化。