bfs也是一个遍历的算法。它的思想是从一个被选定的点出发;然后从这个点的所有方向每次只走一步的走到底(即其中一个方向走完一步之后换下一个方向继续走;如果得不到目的解,那就返回事先定好的值,如果找到直接返回目的解。
与dfs不同的是,bfs不是运用的递归,而是运用队列和函数内循环构造的。
bfs(某个顶点)指的是从某个顶点开始进行广度优先搜索遍历。
bfs(某个顶点)
{
初始化一个队列queue并将这个顶点放入队列;
while(队列不为空)
{
访问队头顶点s;
标记s为已遍历;
出队
遍历p的所有邻接顶点
{
check一下顶点看是否越界或者不满足条件
进行一些列统计等操作
若该顶点没被访问过,入队;
}
}
}