C++ 回溯迷宫堆栈
对于生成迷宫的算法DFS: 1每当有路径可走时,一旦我将堆栈推入,堆栈值是否应该更改 例如,如下5x5迷宫:C++ 回溯迷宫堆栈,c++,algorithm,stack,maze,C++,Algorithm,Stack,Maze,对于生成迷宫的算法DFS: 1每当有路径可走时,一旦我将堆栈推入,堆栈值是否应该更改 例如,如下5x5迷宫: 0, 0, 0, 0, 0 0, 1, 0, 0, S 0, 1, 1, 1, 1 0, D, 0, 0, 0 0, 0, 0, 0, 0 假设我从源头向下移动一步 堆栈将推入坐标5,2当前源位置 当我达到5,3时,currentCell将成为源。5,3 我说得对吗 因此,当源移动到下一个左路径时,堆栈将按当前坐标推进,即5,3,依此类推,直到到达死角而不是目标 因此,根据上
0, 0, 0, 0, 0
0, 1, 0, 0, S
0, 1, 1, 1, 1
0, D, 0, 0, 0
0, 0, 0, 0, 0
假设我从源头向下移动一步
堆栈将推入坐标5,2当前源位置
当我达到5,3时,currentCell将成为源。5,3
我说得对吗
因此,当源移动到下一个左路径时,堆栈将按当前坐标推进,即5,3,依此类推,直到到达死角而不是目标
因此,根据上述示例:
堆栈将首先推入的值
斯塔克0 5,2
斯塔克15,3
问题是,我该如何推进x和y方向?因为当前的问题是,即使我推x和y,x和y仍然保持原始值,而不是不断更新。我想这就是为什么我的回溯不起作用的原因
代码:
结果证明我是对的
maze[x][y] = myStack.top();
myStack.pop();
cout << "Array X is : " << maze[x][y].getX();
cout << "Array Y is : " << maze[x][y].getY();
我所需要做的就是弹出窗口,检查我走的路线是否是回程路线。谢谢大家的帮助
maze[x][y] = myStack.top();
myStack.pop();
cout << "Array X is : " << maze[x][y].getX();
cout << "Array Y is : " << maze[x][y].getY();