DFS模板
一般的DFS模板
void DFS(int graph[][], int used[], int x, int y) { // 1、如果与目标坐标相同,则成功 if (graph[x][y] == graph[goal_x][goal_y]) { printf("successful"); flag = 1; return ; } // 2、遍历四个方向 for (int i = 0; i != 4; ++i) { //3、如果没有走过这个格子 int new_x = x + px[i], new_y = y + py[i]; if (new_x >= 0 && new_x < n && new_y >= 0 && new_y < m && used[new_x][new_y] == 0 && !flag) { used[new_x][new_y] = 1; //4、将该格子设为走过 DFS(graph, used, new_x, new_y); //5、递归下去 used[new_x][new_y] = 0;//6、状态回溯,退回来,将格子设置为未走过 } } }

浙公网安备 33010602011771号