设计最短路径算法

Designing a shortest path algorithm

我有一张这样的 5x5 地图:

**C** - is where I am(random)    
**.** - is a passable tile    
**X** - is not a passable tile   
**D** - is destination.

我的问题是当我无法水平或垂直通过磁贴时如何进行算法。例如我需要向上移动两块瓷砖,但我不能垂直通过瓷砖,所以我有两个选择:向左走或向右走然后向上走。

但是,其中一个可能会失败,我将不得不退后几步并尝试另一条路线。不知道怎么合乎逻辑。

谢谢。

你需要了解回溯,请查看下方link http://www.thegeekstuff.com/2014/12/backtracking-example/

此外,反向跟踪是一种通过在前进时将其推入堆栈来跟踪路径的方式,当您必须返回时,只需从堆栈中弹出即可。