我正在开发一个项目,我必须使用左手规则遍历迷宫,并根据程序的交叉点,我需要创建一个节点来连接到一个图形,然后我将确定最短的路径。目标是让程序在迷宫中运行然后关闭程序并从包含图形的文件中读取并确定到达结束的最短路径。我所做的是我可以使用左手规则遍历迷宫。我想要做的是当我找到交叉点时创建一个节点,并且在每次程序移动之后我将该路径的成本增加一。在旁注上你是否需要在使用dijkstra算法时有一个邻接矩阵?
答案 0 :(得分:2)
尝试这样的事情,应该有效:
0 - create an empty "solution path" stack of location objects. 1 - if current position is maze exit, return "solution path" stack. 2 - wall in front? turn left and repeat 2, else continue to 3. 3 - if current position is at top of "solution path" stack, pop it off of the stack else push it onto the stack 4 - move forward.
当您在堆栈顶部检查当前位置时,您可能需要检查最后一个元素之前的元素,因为最后一个元素将是您刚刚离开的位置。