应用场景
DFS和BFS都是对图进行遍历的算法(树的图的一种),二者的区别只是对图遍历的策略不同
DFS:按照一个方向遍历,直到不能遍历了,才换一个方向遍历。
BFS:从起点开始,依次对周边的节点进行遍历,遍历完再对周边节点的周边节点再进行遍历,以此类推,直到把图遍历完。
我们以迷宫演示一下DFS和BFS遍历的过程。假设有一个4*4的迷宫,其中标为红色的区域不能经过,问能否从迷宫的(0,0)这个坐标移动到(3,3)这个坐标
我们遍历时要按照一个固定的策略对每个节点的4个方向都进行遍历,这样才不会漏掉,假设遍历的方向为上,下,左,右
BFS遍历图示
开始第一次遍历
从(0,0)节点开始
向上遍历为(0,-1),出界了,不用遍历。
向下遍历为(1,0),并且将(1,0)放入队列,以便后续遍历