Adv_图结构_BFS2

上面的问题是把最初位于数字板的 (1, 1)的马移动到 (N, N)位置,求出最小移动次数的问题。像这样求出最短距离的类型,不少问题均可以利用BFS解决。这个问题也能够利用BFS,对各个格子的开始地点算出移动多少次能够到达目的地。首先把所有从开始地点可走的相邻格子放入到发现顶点queue上,这些格子的开始地点的移动次数更新成1。而后在发现的顶点queue上取出一个顶点,把这个格子相邻的尚未访问的格子所有放入到发现顶点queue上。而后对放入的格子的移动次数更新为当前格子的移动次数+ 1。以这样的方式依次反复能够计算出 (N, N)格子的最小移动次数。spa

 

 

上面的图片是利用BFS,把更新各个格子的移动次数过程按照移动次数的顺序表示的图片。根据这样的内容实现的源代码以下所示:blog

相关文章
相关标签/搜索