#JC1043. 广度优先搜索(二)

广度优先搜索(二)

一、单项选择题(每题2分,共20分)

1、关于BFS和DFS求最短路径说法正确的是?() {{ select(1) }}

  • DFS第一次搜到目标,一定是最短路径
  • BFS第一次搜到目标,就是最短路径
  • DFS和BFS都能直接得到最短路径
  • 求最短路径优先使用DFS递归

2、BFS求最短路径时,结构体node需要新增哪个成员?() {{ select(2) }}

  • vis
  • mp
  • step
  • dx

3、BFS求最短路径,起点入队时step的值设置为?() {{ select(3) }}

  • 1
  • 0
  • 2
  • -1

4、新生成的相邻结点入队,它的step值应该为?() {{ select(4) }}

  • 固定等于0
  • 当前队首结点的step + 1
  • 当前队首结点的step
  • 固定等于1

5、海上营救题目允许8个方向移动,dx、dy数组的长度应该是?() {{ select(5) }}

  • 2
  • 4
  • 8
  • 16

6、“奇怪的电梯”属于一维BFS,结点中不需要存储下面哪一项?() {{ select(6) }}

  • 当前楼层
  • step步数
  • x行坐标
  • 以上都不对

7、BFS搜索结束,始终没有找到目标点,应该输出?() {{ select(7) }}

  • 0
  • 1
  • -1
  • step

8、象走田的题目,关于地图数组说法正确的是?() {{ select(8) }}

  • 必须读取二维地图
  • 不需要地图数组,只做边界和访问标记
  • 地图只存障碍物
  • 地图用来存储步数

9、下面哪一个是BFS和DFS的共同点?() {{ select(9) }}

  • 使用队列实现
  • 搜索都需要vis标记数组
  • 第一次找到目标就是最短路径
  • 使用递归实现

10、马走日题型,BFS过程同时寻找A、B两个目标点,什么时候可以结束搜索?() {{ select(10) }}

  • 找到A就立刻结束
  • 找到B就立刻结束
  • A和B都找到之后结束
  • 队列刚入队起点就结束

二、判断题(每题2分,共10分)

11、DFS第一次找到终点不一定是最短路径,需要全部遍历对比步数。() {{ select(11) }}

  • 正确
  • 错误

12、BFS中,应当取出队首元素之后再给vis打标记。() {{ select(12) }}

  • 正确
  • 错误

13、8方向搜索和4方向搜索,代码整体框架不变,只需要更换dx、dy方向数组。() {{ select(13) }}

  • 正确
  • 错误

14、奇怪的电梯一维BFS,vis标记数组依然需要定义成二维数组。() {{ select(14) }}

  • 正确
  • 错误

15、BFS求最短路径,判断到达目标点后直接输出step并return结束函数。() {{ select(15) }}

  • 正确
  • 错误