2017-08-27 43 views
-1

因此,我正在完成一项任务,并且我完全陷入了困境。我必须修改其他人的代码,以使用堆栈来模仿递归并找到通过2D迷宫的方式。我不得不修改程序来显示正确的路径,不包括导致或者是死路一条的任何单元。跟踪正确的移动列表,同时使用堆栈遍历2D迷宫

程序当前工作的方式是,它从当前位置采取所有可能的移动,然后将它们按西,东,北,南顺序推送到堆栈。然后它从堆栈中弹出顶部单元格并移动到它。它会重复这个过程,直到它陷入死胡同,此时它会从堆栈顶部弹出一个较旧的可能位置并跳回到该位置,继续从那里继续,或者如果它发现它停止的结束。

我遇到的问题是程序不保持移动一旦他们出栈,所以回溯和标记不正确的细胞是不是一种选择的方式。

我的问题,更多的寻求建议我想,我应该尝试采取什么策略来标记不正确的细胞,使我可以在迷宫的结束只打印正确的呢?

,如果需要,我可以提供代码,但程序是相当大的,由几个.java文件。

让我知道你是否需要更多信息。我真的只是希望朝着正确的方向发展。

回答

0

对于那些可能会偶然发现的人来说,我最终编写了一个递归算法,当它能够从一个位置找到它的末端时,它将它标记为正确路径的一部分,移动开始的位置,重新设置迷宫,然后再次运行,直到它结束。