bfs需要借助队列来实现
1、初始的时候把起始点放入队列中,并标记起点访问。
2、如果队列不为空,从队列中取出一个元素x,否则算法结束。
3、访问和x相连的所有点v,如果v没有被访问,把v入队,并标记已经访问过。
4、重复执行步骤2.
bfs框架:
void bfs(起始点){
将起始点放入队列中;
标记起点访问;
while(如果队列不为空){
访问队列队首元素x;
删除队首元素;
for(x 所有相邻点){
if(该点未被访问过且合法){
将该点加入队列末尾;
}
}
}
队列为空,广搜结束;
}