這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)使用java實現(xiàn)尋找迷宮路徑,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
在菏澤等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計、成都做網(wǎng)站 網(wǎng)站設(shè)計制作定制開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),營銷型網(wǎng)站建設(shè),外貿(mào)營銷網(wǎng)站建設(shè),菏澤網(wǎng)站建設(shè)費用合理。項目介紹:
一個網(wǎng)格迷宮由n行m列的單元格組成,每個大院個要么是空地(用0表示),要么是障礙物(用1表示)。你的任務(wù)是找一條從起點到終點的移動序列,其中只能上下左右移動到相鄰單元格。任何時候都不能在有障礙物的單元格中,也不能走到迷宮之外。起點為左上角和終點右下角。
項目功能:
解決迷宮路徑查找問題,尋找一條從左上角迷宮入口到右下角迷宮出口的一條有效路徑,0代表可走,1代表不能行走,找到請輸出最終的迷宮和路徑信息,找不到請輸出不存在有效路徑。
項目所用知識點:
采用Java面向?qū)ο笏枷?,二維數(shù)組以及非遞歸棧進行實現(xiàn)
項目實現(xiàn)思路:
1.定義一個迷宮節(jié)點類型(MazeNode)的二維數(shù)組
2.初始化每個格子中的value值。給二維數(shù)組每個格子存放對象。對象的value值只能為0(當(dāng)前格子可以走)或者1(當(dāng)前格子不能走)
3.創(chuàng)建圍墻,可以有效防止越界問題。根據(jù)當(dāng)前節(jié)點周圍四個方向格子中的value值,判斷當(dāng)前節(jié)點的上下左右四個方向是否可走(0是可走,1不可走)。
4.開始走迷宮。采用棧操作,記錄行走的路徑,將元素入棧,判斷當(dāng)前棧頂元素的哪個方向可走,將其中一個可走方向進行入棧操作,直到右下角元素停止。棧中保存走過的路徑。 注意: 如果遇到走入死胡同問題,此時需要將是棧頂元素并且棧頂元素的四個方向都不能行走,此時將其出棧,選擇新方向再次入棧,直到右下角元素停止。
項目實現(xiàn) :
Maze類
import java.util.Scanner; public class Maze { private MazeNode[][] mazenode; private int row ;//行 private int colum;//列 public Maze(){ } public void innode(){//添加迷宮路徑; Scanner scanner=new Scanner(System.in); System.out.println("請輸入迷宮行數(shù)和列數(shù)"); row=scanner.nextInt()+2;//為后面加圍墻 colum=scanner.nextInt()+2; System.out.println("請輸入迷宮路徑:"); mazenode=new MazeNode[row][colum]; build(mazenode);//創(chuàng)建一個row行colum列的mazenode并且把value值都給1 for(int i=1;i
網(wǎng)站欄目:使用java實現(xiàn)尋找迷宮路徑-創(chuàng)新互聯(lián)
標(biāo)題URL:http://weahome.cn/article/dhcjsh.html