DFS搜索

核心处理如下,已迷宫为例:

1、退出条件,到达目标位置;

if(x==p && y==q) return;

2、搜索路径

int next[4][2]={{0,1},{1,0},{0,-1},{-1,0}}

for(int k=0;k<3;k++) {   
  tx = x + next[k][0]; 
  ty = y + next[k][1]; 
  invalid(tx); invalid(ty) 
}

3、递归搜索

if(a[tx][ty] == 0  &&  book[tx][ty] == 0){

  book[tx][ty] = 1; 标记为已处理

  dfs(tx, ty, step+1);  开始下一轮处理

  book[tx][ty] = 0; 处理结束取消标记
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容