设计最短路径算法

时间:2016-02-20 14:14:14

标签: c# algorithm recursion logic shortest-path

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

map

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

我的问题是当我无法水平或垂直传递图块时如何进行算法。例如,我需要向上移动两个瓦片,但我无法垂直传递瓦片,因此我有两个选择:向左或向右然后向上移动。

然而,其中一个可能会失败,我将不得不返回一些步骤并尝试另一条路线。我不知道怎么做逻辑。

感谢。

1 个答案:

答案 0 :(得分:0)

您需要了解回溯,请查看以下链接http://www.thegeekstuff.com/2014/12/backtracking-example/

此外,回溯跟踪是一种方法,您可以通过在堆栈中将其推入堆栈来跟踪路径,当您必须从堆栈返回时。