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

广度优先搜索:

策略:

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

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

原文地址:https://www.cnblogs.com/maxbolg/p/9346266.html