91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么樣使用java算法BFS來求迷宮出口最短路徑

發布時間:2020-11-11 10:03:19 來源:億速云 閱讀:187 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關怎么樣使用java算法BFS來求迷宮出口最短路徑的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

隊列的建立

static Queue r = new LinkedList(); //創建隊列

隊列的基本方法

r.offer(); 入隊尾

r.poll(); 出隊首

r.peek(); 隊首的內容

代碼實現:

全局變量設置

package Two;

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

public class BFS {
  static int a[][] = new int [100][100]; //輸入迷宮
  static int v[][] = new int [100][100]; //走過的標記為1
  static int startx,starty;    //輸入起點位置
  static int p,q;      //輸入要到達的坐標位置
  static int dx[] = {0,1,0,-1};  //方向數組
  static int dy[] = {1,0,-1,0}; 
  
  static Queue<point> r = new LinkedList<point>();  //創建隊列
  
  
  static class point{     //建立類坐標屬性
	  int x;
	  int y;
	  int step;
	
  }

輸入迷宮和起始位置,目標位置

public static void main(String[] args) {
  Scanner in = new Scanner(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
  point start = new point();   //定義一個初始類作為隊首
  start.x = startx;
  start.y = starty;
  start.step = 0;
  r.offer(start);
  v[startx][starty]=1;

2、進入循環體

  while(!r.isEmpty()) {        //當隊列為空時跳出循環
  	
  	int x = r.peek().x;      //把隊首的屬性賦值
  	int y = r.peek().y;
  	int step = r.peek().step;
  	
  	
  	if(x==p && y==q) {           //到達目的地,退出循環
  		System.out.println(step);
  		break;
  	}
  	
  	for(int i=0;i<4;i++) {       //廣度遍歷,右下左上分別入隊
  		int tx= x+dx[i];
  		int ty= y+dy[i];
  	

  		if(a[tx][ty] == 1 && v[tx][ty]==0) {   //判斷是否可以入隊
  			//入隊
  			point temp = new point();    //建立一個臨時類
  			temp.x = tx;
  			temp.y = ty;
  			temp.step = r.peek().step +1;
  			
  	
  			r.offer(temp);     //入隊
  			v[tx][ty]=1;       //標記為1
  		}
  	}
  	
  	r.poll(); //拓展完了需要隊首出隊
  
  	
  }
  

}
}

感謝各位的閱讀!關于怎么樣使用java算法BFS來求迷宮出口最短路徑就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

文登市| 渝中区| 宁晋县| 正宁县| 阿克苏市| 小金县| 宁阳县| 克什克腾旗| 台南市| 雅江县| 琼中| 上高县| 武强县| 东平县| 绥阳县| 巴青县| 兴海县| 曲麻莱县| 连江县| 琼海市| 都匀市| 道孚县| 巴中市| 兴文县| 聊城市| 阿巴嘎旗| 苏尼特左旗| 象山县| 健康| 酉阳| 安图县| 盐山县| 钟祥市| 博野县| 静宁县| 济阳县| 南投市| 杭州市| 大理市| 汽车| 诸城市|