Adv_圖結構_BFS2

上面的問題是把最初位於數字板的 (1, 1)的馬移動到 (N, N)位置,求出最小移動次數的問題。像這樣求出最短距離的類型,不少問題均可以利用BFS解決。這個問題也能夠利用BFS,對各個格子的開始地點算出移動多少次能夠到達目的地。首先把所有從開始地點可走的相鄰格子放入到發現頂點queue上,這些格子的開始地點的移動次數更新成1。而後在發現的頂點queue上取出一個頂點,把這個格子相鄰的尚未訪問的格子所有放入到發現頂點queue上。而後對放入的格子的移動次數更新爲當前格子的移動次數+ 1。以這樣的方式依次反覆能夠計算出 (N, N)格子的最小移動次數。spa

 

 

上面的圖片是利用BFS,把更新各個格子的移動次數過程按照移動次數的順序表示的圖片。根據這樣的內容實現的源代碼以下所示:blog

相關文章
相關標籤/搜索