题目
在图的遍历算法中,深度优先搜索(DFS)使用的数据结构是( )A. 栈B. 队列C. 链表D. 数组
在图的遍历算法中,深度优先搜索(DFS)使用的数据结构是( )
A. 栈
B. 队列
C. 链表
D. 数组
题目解答
答案
A. 栈
解析
考查要点:本题主要考查对图的遍历算法中深度优先搜索(DFS)核心机制的理解,特别是其使用的数据结构。
解题核心思路:
- 深度优先搜索(DFS)的核心特点是“先进入尽可能深的分支”,其遍历过程需要回溯机制。
- 栈(先进后出)的特性与DFS的回溯过程高度契合:新访问的节点会被优先处理,未处理的节点暂时保存。
- 队列(先进先出)则用于广度优先搜索(BFS),与本题无关。
- 链表和数组是图的存储结构(如邻接表、邻接矩阵),而非遍历算法的直接工具。
破题关键点:
明确区分DFS与BFS的数据结构差异,抓住“回溯”与“先进后出”的对应关系。
深度优先搜索(DFS)的工作原理:
- 初始状态:将起始节点压入栈,并标记为已访问。
- 循环过程:
- 从栈顶弹出当前节点,处理该节点。
- 将所有未访问的相邻节点依次压入栈,并标记为已访问。
- 终止条件:栈为空时遍历结束。
数据结构选择:
- 栈通过“先进后出”确保优先处理最新发现的节点,从而实现“深度优先”的遍历策略。
- 若使用队列,则会按发现顺序处理节点,导致“广度优先”遍历(即BFS)。
选项分析:
- A. 栈:正确,符合DFS回溯机制。
- B. 队列:错误,属于BFS的特征。
- C. 链表、D. 数组:错误,属于图的存储结构而非遍历工具。