java走迷宫最短路径,java 迷宫最短路径
如何解决写爬虫IP受阻的问题?立即使用。
队列的建立
静态队列r=new linked list();//创建队列(学习视频分享:java课程)
排队的基本方法
r . offer();输入队列的末尾
r . poll();离开队伍
r . peek();团队领导的内容
代码实现:
全局变量设置
套餐二;
导入Java . util . linked list;
导入Java . util . queue;
导入Java . util . scanner;
公共类BFS {
static int a[][]=new int[100][100];//输入迷宫
static int v[][]=new int[100][100];//行走的标记是1。
静态int startx,starty//输入起始位置。
静态int p,q;//输入要到达的坐标位置
static int dx[]={0,1,0,-1 };//方向数组
static int dy[]={1,0,-1,0 };
static queue point r=new linked list point();//创建队列
静态类点{ //创建类坐标属性
int x;
int y;
int步;
}输入迷宫,起始位置和目标位置。
公共静态void main(String[] args) {
Scanner in=新扫描仪(system . in);
int m=in . nextint();
int n=in。nextInt();
for(int I=1;I=m;I) //输入迷宫
for(int j=1;j=n;j)
a[I][j]=in . nextint();
startx=in . nextint();
starty=in . nextint();//输入目标和起始位置
p=in . nextint();
q=in . nextint();BFS算法开始
1.设置团队领导。
//BFS
点start=新点();//定义一个初始类作为队列的头
start.x=startx
start.y=starty
start . step=0;
r.offer(开始);
v[startx][starty]=1;2.进入循环体。
而(!r . isempty(){//队列为空时跳出循环
int x=r.peek()。x;//分配队列头的属性。
int y=r.peek()。y;
int step=r.peek()。步;
If(x==p y==q) {//到达目的地并退出循环
system . out . println(step);
打破;
}
for(int I=0;i4;I) {//遍历广度,分别在右下和左上加入队伍。
int tx=x dx[I];
int ty=y dy[I];
if(a[TX][TY]==1v[TX][TY]==0){//判断是否可以入队。
//加入团队
point temp=new point();//创建一个临时类
temp.x=tx
temp.y=ty
temp.step=r.peek()。第一步;
r.offer(临时);//加入团队
v[tx][ty]=1;//标记为1
}
}
r . poll();//资料片完成后,团队需要先出去。
}
}
}相关推荐:java入门。以上是利用java算法BFS寻找迷宫出口最短路径的详细内容。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。