#JC1058. 广度搜索进阶
广度搜索进阶
一、单项选择题(每题2分,共20分)
1、广度优先搜索BFS底层依靠哪种数据结构实现?() {{ select(1) }}
- 栈
- 队列
- 优先队列
- 数组
2、BFS搜索的遍历特点是?() {{ select(2) }}
- 一条路径走到头,走不通再回溯
- 逐层向外扩散,优先访问离起点近的结点
- 只可以处理排序问题
- 必须使用递归实现
3、BFS处理迷宫,标记数组vis正确打标记时机是?() {{ select(3) }}
- 入队的时候立刻标记vis=1
- 出队的时候再标记vis=1
- 判断终点的时候标记
- 找到答案之后统一标记
4、在4方向迷宫BFS中,dx、dy数组的作用是?() {{ select(4) }}
- 存储地图障碍物信息
- 记录每个格子的最短步数
- 保存上下左右坐标偏移量
- 标记格子是否访问
5、关于BFS求无权地图最短路径,下面说法正确的是?() {{ select(5) }}
- BFS不适合求最短路径,要用DFS
- BFS按层遍历,step就是起点到该点最少步数
- step数值在出队的时候再加1
- 最短路径问题不能使用vis标记数组
6、泛洪算法(图像填充)的主要用途是?() {{ select(6) }}
- 排序数组元素
- 将连通区域的像素统一替换成目标颜色
- 计算迷宫总格子数
- 寻找数组最大值
7、山峰山谷题目中,连通块采用的相邻判断方式是?() {{ select(7) }}
- 仅上下左右4方向
- 8方向(包含对角线)
- 只能向右向下
- 只能斜向移动
8、山峰山谷,如果整张地图所有格子高度全部相同,则() {{ select(8) }}
- 只是山峰
- 只是山谷
- 既是山峰,同时也是山谷
- 既不是山峰,也不是山谷
9、带状态BFS(棋盘魔法题),队列结构体中不需要保存下面哪一项?() {{ select(9) }}
- 当前坐标x、y
- 当前累计花费金币
- 魔法是否可用状态
- 整张地图完整拷贝
10、BFS循环条件while(!q.empty())含义是?()
{{ select(10) }}
- 队列为空继续循环
- 队列不为空的时候继续循环
- 队列满的时候退出循环
- 每次循环清空队列
二、判断题(每题2分,共10分)
11、BFS和DFS都可以完成连通块搜索、泛洪填充的任务。() {{ select(11) }}
- 正确
- 错误
12、BFS适合路径计数类问题,DFS更适合求无权图最短路径。() {{ select(12) }}
- 正确
- 错误
13、普通迷宫连通性问题,nx、ny必须做边界判断,防止数组越界。() {{ select(13) }}
- 正确
- 错误
14、山峰山谷题目,只要邻格高度不相等,就直接跳过不做判断。() {{ select(14) }}
- 正确
- 错误
15、带状态广搜,同一个坐标,不同状态要分开入队处理。() {{ select(15) }}
- 正确
- 错误