资源简介
分别用栈和队列实现走迷宫的算法,电子工业出版社,叶核亚版的数据结构(java)课后习题,希望对大家有用。
代码片段和文件信息
package lianxi2;
import java.util.Deque;
import java.util.linkedList;
public class MigongQueue {
int[][] map={
{101110}
{111010}
{010110}
{111000}
{100111}
{111100}};
Deque que=new linkedList();
Point nowpre;
public MigongQueue(){
now=new Point();
pre=new Point();
}
public int check(){
int i=0;
int a=now.x;
int b=now.y;
if(a-1>=0){
if(map[a-1][b]==1){
i++;
}
}
if(a+1<=5){
if(map[a+1][b]==1){
i++;
}
}
if(b-1>=0){
if(map[a][b-1]==1){
i++;
}
}
if(b+1<=5){
if(map[a][b+1]==1){
i++;
}
}
return i;
}
public boolean isOk(){
if(now.x==4&&now.y==5){
return true;
}else{
return false;
}
}
public void pavement(){
while(!isOk()){
int a=now.x;
int b=now.y;
if(a-1>=0&&map[a-1][b]==1){
map[a][b]=2;
que.offer(new Point(now));
now.x=a-1;
}
if(a+1<=5&&map[a+1][b]==1){
map[a][b]=2;
que.offer(new Point(now));
now.x=a+1;
}
if(b-1>=0&&map[a][b-1]==1){
map[a][b]=2;
que.offer(new Point(now));
now.y=b-1;
}
if(b+1<=5&&map[a][b+1]==1){
map[a][b]=2;
que.offer(new Point(now));
now.y=b+1;
}
if(check()==0){
map[a][b]=-1;
now=que.peek();
while(check()!=0){
now=que.poll();
map[now.x][now.y]=-1;
}
}
}
System.out.println(“you succeed!“);
}
public void _printAll(){
now=new Point();
while(!isOk()){
int a=now.x;
int b=now.y;
if(a-1>=0){
if(map[a-1][b]==2){
System.out.println(now.x+““+now.y);
now.x=a-1;
}
}
if(a+1<=5){
if(map[a+1][b]==2){
System.out.println(now.x+““+now.y);
now.x=a+1;
}
}
if(b-1>=0){
if(map[a][b-1]==2){
System.out.println(now.x+““+now.y);
now.y=b-1;
}
}
if(b+1<=5){
if(map[a][b+1]==2){
System.out.println(now.x+““+now.y);
now.y=b+1;
}
}
//System.out.println();
}
}
public void printAll(){
for(int i=0;i<6;i++){
for(int j=0;j<6;j++){
if(map[i][j]==2){
System.out.println(i+““+j);
}
}
}
}
public static void main(String[] args){
MigongQueue mi=new MigongQueue();
mi.pavement();
mi.printAll();
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2496 2012-03-28 22:39 MigongQueue.java
文件 2304 2012-03-27 21:33 MigongStack.java
文件 536 2012-04-02 19:32 Point.java
相关资源
- 编写程序,使用两个线程,一个队列
- Java可视化迷宫含源代码
- 栈的实现,数据结构
- java解决迷宫程序
- 基于Java的迷宫程序带界面
- 迷宫java实现
- Java仿抖音短视频小程序开发全栈式实
- Java仿抖音短视频小程序开发全栈式实
- Spring Boot技术栈博客企业前后端视频和
- C# To JAVA Converter v17.10.6(最新破解版)
- 分享ThinkPHP5.0微信小程序商城构建全栈
- Java写的一个进栈出栈的演示程序
- Java 自定义非泛型栈结构
- Java 使用阻塞队列实现线程同步
- Java 小猪走迷宫
- rabbitMQ的demo
- 迷宫随机生成和寻找最短路径
- 随机生成一个迷宫并探索一条路径的
- Java/Android优先级任务队列
- Java课设走迷宫.zip
- Java 3D迷宫游戏源代码.rar
- android迷宫小游戏源代码
- 自己做的android迷宫小游戏(基于and
- 基于RxJava2.0的任务队列
- android安卓版迷宫寻路
- java迷宫程序及代码
- 基于java的迷宫小游戏
- Java Demo -简单的队列--多任务
- android手机迷宫游戏
- Java游戏三维迷宫源代码
评论
共有 条评论