递归深搜
直接放代码,两个函数,用于在三维空间搜索。
 int valid(int x, int y, int z) {
     return x >= 0 && x < n && y >= 0 && y < n && z >= 0 && z < n;
 }//查询数组是否越界
 int find(int i, int j, int k,int m) {
     if (m == 4) {
         n3++;//全部搜到则计数器加一
         return 0;
     }
     int a;
     for (a = 0; a < 6; a++){
int y = j + dy[a];
int z = k + dz[a];
int x = i + dx[a];
if (valid(x, y, z) && !n2[x][y][z] && m1[m] == n1[x][y][z]) {
     n2[x][y][z] = 1;//标记已经搜索过的区域
     find(x,y,z,m+1);//如果搜到,则继续搜索
     n2[x][y][z] = 0;//清空已搜到区域
}
}
 }
知识共享许可协议
Text is available under CC BY-NC-SA 4.0 unless otherwise stated.

除非特殊声明,本站所有内容均以 CC BY-NC-SA 4.0协议授权。
上一篇
下一篇