C++ 回溯迷宫堆栈

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,依此类推,直到到达死角而不是目标 因此,根据上

对于生成迷宫的算法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 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();