CC++ & Algorithm
算法可视化
入门执行逻辑

迷宫寻路:DFS 回溯

在迷宫里找路:能走就走,走不通就退回上一步换方向(回溯)。绿色是最终路径,红色是尝试后回退的格子。

main.cpp第 10 行
1// 迷宫寻路: 从 (0,0) 走到 (3,3), 0 可走 1 墙
2bool dfs(int x, int y) {
3 if (出界 || 墙 || 走过) return false;
4 if (终点) return true;
5 mark(x, y);
6 if (dfs(x+1,y) || dfs(x,y+1)) return true; // 先下后右
7 unmark(x, y); // 回退
8 return false;
9}
10// 调用: dfs(0, 0)
变量表0 个变量
还没有变量,执行到声明语句后出现
迷宫(绿=可行路径 · 红=尝试后回退 · 蓝=当前)
起
终
1/15

从起点 (0,0) 出发找路,规则:先向下,再向右

1 / 15