DFS搜索

2020-03-04  本文已影响0人  zchzx30

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

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; 处理结束取消标记
}
上一篇 下一篇

猜你喜欢

热点阅读