2d873941-4acc-4678-80b0-4d3a4b01d491.png
    bfs 需要借助队列来实现

    1. 初始化时把起始点放到队列中,并标记起点访问
    2. 如果队列不为空,从队列中取出一个元素 x , 否则算法结束
    3. 访问和 x 相连的所有点v, 如果v没有被访问,把 v 入队,并标记已经访问
    4. 重复执行步骤 2
      1. void bfs(起始点)
      2. 将起始点放入队列;
      3. 标记起点访问;
      4. while (如果队列不为空) {
      5. 访问队列中队首元素x
      6. 删除队首元素;
      7. for (x 所有相邻点)
      8. if(该点未被访问过且合法){
      9. 将该点加入队列末尾;
      10. }
      11. 队列为空,广搜结束;
      bfs 是分层搜索,因此,第一次搜索到终点的时候,当前搜索的层数就是最短路径长度