C++ DFS 中的迷宫回溯算法?

Maze Backtracking Algorithm in C++ DFS?

我是 C++ 的新手,我目前正在一个项目中创建一个使用 DFS 算法生成的迷宫。

我已经成功地生成了一条路径,例如

0 , 0 , 0 , 0,  0
0 , 1 , 1 , S,  0
0 , 1 , 0 , 0,  0
0 , 1 , 0 , 0,  0
0 , D , 0 , 0,  0
0 , 0 , 0 , 0,  0

同上,

Source是初始单元格,1是我根据随机邻居创建的路径,问题是,D是"dead end"。所以,如果可能的话,我想回到 S 并从另一个方向开始。我应该如何使用队列和堆栈来做到这一点?任何人都可以阐明这一点吗?太感谢了?

如果我们使用基本的人工智能知识就更好了。针对这个特定问题定义一组有效操作,一个初始状态,一个最终状态,让你的程序使用 search tree of states 和定义的操作来找到解决方案。