欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

深度优先搜索和广度优先搜索

程序员文章站 2022-05-21 15:08:04
...

广度优先搜索:

策略:

 从起点开始遍历其相邻接的节点,由此向外不断扩散 (使用队列)

BFS()
{
  输入起始点;
  初始化所有顶点标记为未遍历;
  初始化一个队列queue并将起始点放入队列;

  while(queue不为空)
  {

    从队列中删除一个顶点s并标记为已遍历; 
    将s邻接的所有还没遍历的点加入队列;
  }
}

深度优先遍历

策略是:

从一个顶点v出发,首先将v标记为已遍历的顶点,然后选择一个邻接于v的尚未遍历的顶点u,如果u不存在,本次搜素终止。如果u存在,那么从u又开始一次DFS。如此循环直到不存在这样的顶点。(使用栈)

DFS(顶点v)
{
  标记v为已遍历;
  for(对于每一个邻接v且未标记遍历的点u)
      DFS(u);
}

 具体参考 https://www.cnblogs.com/0kk470/p/7555033.html