迷宫问题
问题描述:
其中黑色节点表示无法通行,白色节点表示可以同行,需要找出从一个节点到另一个节点的路径。
(B)问题分析:
采用回溯算法,设置俩个栈,一个栈存放已选路径,另一个栈存放已选路径中的周围可通行节点。采用深度优选进行遍历,如果遇到死胡同,则进行回溯,并对栈做相应处理。
©算法实现:
typedef struct Node {
int row;
int col;
Node(int row, int col) :row(row), col(col) {
};
Node() {
};
bool operator==(Node b) {
if (row == b.row && col == b.col) {
return true; }
else{
return false;}
}
bool operator!=(Node b) {
if (row == b.row && col == b.col) {
return false; }
else {
return true