深度度优先搜索DFS骑士跳跃问题.doc

深度度优先搜索DFS骑士跳跃问题.doc

ID:48884067

大小:27.00 KB

页数:2页

时间:2020-02-04

深度度优先搜索DFS骑士跳跃问题.doc_第1页
深度度优先搜索DFS骑士跳跃问题.doc_第2页
资源描述:

《深度度优先搜索DFS骑士跳跃问题.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、深度度优先搜索DFS骑士跳跃问题#include#includeusingnamespacestd;#defineINF99999intmap[8][8];intdir[8][2]={{2,1},{2,-1},{-2,1},{-2,-1},{1,2},{1,-2},{-1,2},{-1,-2}};structnode{intx,y,t;};stackzerob;intmain(){charstr1[3],str2[3];nodehead,p;while(scanf

2、("%s%s",str1,str2)==2){for(inti=0;i<8;i++){for(intj=0;j<8;j++){map[i][j]=INF;}}while(!zerob.empty()){zerob.pop();}head.x=str1[0]-'a';head.y=str1[1]-'1';head.t=0;intans=-1;zerob.push(head);while(!zerob.empty()){head=zerob.top();zerob.pop();if(head.x==str2[0

3、]-'a'&&head.y==str2[1]-'1'){if(ans>head.t

4、

5、ans==-1)ans=head.t;continue;}for(inti=0;i<8;i++){p=head;p.x+=dir[i][0];p.y+=dir[i][1];if(!(p.x>=0&&p.x<8&&p.y>=0&&p.y<8))continue;p.t++;if(map[p.x][p.y]<=p.t)continue;map[p.x][p.y]=p.t;zerob.push(p);}}printf("Toge

6、tfrom%sto%stakes%dknightmoves.",str1,str2,ans);}}其实当你理解了深搜和广搜后,你会发现,你写出来的深搜和广搜的代码可以看上去是差不多的。为什么那么说呢,因为,无论那种搜索,都是通过对一个线性表进行处理,只不过是先处理头部还是尾部的问题罢了。处理头部优先的时候,就是广度优先了,因为,头部的都是兄弟节点;而尾部的则是深度优先,因为放入尾部的都是刚刚生产出来的节点——也就是所谓一条路走到死。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。