博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
广度优先(迷宫找人)
阅读量:4507 次
发布时间:2019-06-08

本文共 1949 字,大约阅读时间需要 6 分钟。

1 import java.util.LinkedList; 2  3 public class One { 4     public static void main(String args[]){ 5         int n,m,p,q;//n,m为数组实际迷宫的行列,p,q为目标地的数组行纵号 6         int a[][]=new int[51][51],book[][]=new int[51][51];//迷宫和标记数组 7         int d[][]={
{0,1},{1,0},{0,-1},{-1,0}};//方向数组,用于遍历各个方向 8 Scanner scanner=new Scanner(System.in); 9 System.out.println("请输入迷宫行列数:");10 n=scanner.nextInt();11 m=scanner.nextInt();12 System.out.println("输入迷宫:");13 for(int i=1;i<=n;i++){14 for(int j=1;j<=m;j++){15 a[i][j]=scanner.nextInt();16 }17 System.out.println("");18 }19 System.out.println("请输入目的地数组坐标:");20 p=scanner.nextInt();21 q=scanner.nextInt();22 LinkedList
list=new LinkedList
();23 //初始化链表第一个点24 list.add(new Note(1,1,0));25 book[1][1]=1;26 int tx,ty,flag=0;//tx,ty用于表示扩展的数组行列号,flag用于表示是否找到了目的点27 while(!list.isEmpty()){28 for(int k=0;k<=3;k++){
//链表第一个点的扩展(四个方向)29 tx=list.getFirst().x+d[k][0];30 ty=list.getFirst().y+d[k][1];31 //判断是否出界,或者有障碍,或者已经走过了32 if(tx<1||ty<1||tx>n||ty>m||a[tx][ty]==1||book[tx][ty]==1)continue;33 list.add(new Note(tx,ty,list.getFirst().step+1));//若没有过界,也没有障碍物,则把该扩展点加入到链表后面34 if(tx==p&&ty==q){
//若该扩展点为目的地,则flag=1表示找到了目的地,并且停止继续查找35 flag=1;36 break;37 }38 }39 if(flag==1)break;//若找到了目的地,停止扩展40 list.removeFirst();41 }42 System.out.println(list.getLast().step);43 }44 }45 class Note{46 int x,y,step;47 Note(int x,int y,int step){48 this.x=x;49 this.y=y;50 this.step=step;51 }52 }
迷宫

 

转载于:https://www.cnblogs.com/qinmeizhen/p/6790664.html

你可能感兴趣的文章
499php,一笔画仙路 [499]第499章 神器的威力 最新章节无弹窗全文免费阅读 乐文阅读官网...
查看>>
zend怎么保存php,Zend Framework页面缓存实例
查看>>
oracle 并接去掉字符串,ORACLE删除字符-TRIM字符截取-substr查找字符-instr
查看>>
linux webrtc浏览器,WebRTC 浏览器支持
查看>>
[译文] 小提示:伪元素是子元素,吧。
查看>>
我答"编程为什么不用中文?": 中文API的意义和探索
查看>>
Swoft 2.0.5 更新,新增高效秒级定时任务、异常管理组件
查看>>
版本对比 两个版本号 一样长度
查看>>
计算百分比
查看>>
js 乘除算法 浮点 精度解决办法
查看>>
sql server 2012 链接服务器不能链接sql server 2000的解决方案 ,
查看>>
sqlserver2005版本的mdf文件,还没有log文件,
查看>>
错误“该伙伴事务管理器已经禁止了它对远程/网络事务的支持”解决方案
查看>>
System x 服务器制作ServerGuide U盘安装Windows Server 2008 操作系统 --不格式化盘
查看>>
java面试
查看>>
前端常见跨域解决方案(全)
查看>>
单点登录(Single Sign On)解决方案
查看>>
umi---className设置多个样式
查看>>
网页包抓取工具Fiddler工具简单设置
查看>>
周总结报告
查看>>