freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計迷宮算法的實現(xiàn)_java-資料下載頁

2025-08-06 22:13本頁面
  

【正文】 vate void spider(int row, int col) { // 本蜘蛛停止探測,原因:要探測區(qū)域出界 或為障礙 或已探測過 或其它 if (row 0 || row rows 1 || col 0 || col cols 1 || !map[row][col] || hasFound) { return。 } // 找到了 else if ( == row amp。amp。 == col) { hasFound = true。 stack_route = (Stack) ()。 } // 向四個方向探測,順時鐘 else { // 標記已走過 map[row][col] = false。 (new Dimension(row, col))。 // 右 (new Dimension(row, col + 1))。 spider(row, col + 1)。 ()。 // 下 (new Dimension(row + 1, col))。 spider(row + 1, col)。 ()。 // 左 (new Dimension(row, col 1))。 spider(row, col 1)。 ()。 // 上 (new Dimension(row 1, col))。 spider(row 1, col)。 // ** 遞歸回來后出棧,可維持棧的原來狀態(tài),就像沒進入遞歸一 ()。 } }}package 。import 。import .*。import 。import 。import 。/** * p * Tite: 迷宮問題 * /p * * p * Description: 以一個mxn的長方陣表示迷宮,0和1分別表示迷宮中的通路和障礙。 * 設(shè)計一個程序,對任意設(shè)定的迷宮,求出一條從入口到出口的通路,或得出沒有通路的結(jié)論。 * * 下面用遞歸實現(xiàn),實際上就是用了圖深度優(yōu)先遍歷 走過的格子直接標記為障礙 line 76: 入棧、入遞歸、出棧,為了保持現(xiàn)場,類似于Practice_2_3public class Walking { private int rows。 private int cols。 private Dimension goal。 @SuppressWarnings(unused) private Dimension begin。 // false 為障礙或已走過 private boolean map[][]。 private Stack stack, stack_hasWalk, stack_route。 private boolean hasFound = false。 private int count = 1。Timer timer = new Timer(, new ActionListener_Timer())。// 初始化,輸入地圖 NxM public Walking(boolean[][] map) { this(map, new Dimension(0, 0), new Dimension( 1, map[0].length 1))。 } // 初始化,可自定義 起始位置、終點位置 public Walking(boolean[][] map, Dimension begin, Dimension goal) { rows = 。 cols = map[0].length。 = (map)。 = goal。 = begin。 stack = new Stack()。 stack_hasWalk = new Stack()。 stack_route = new Stack()。 spider(, )。 printWalking()。 } // 根據(jù)stack_hasWalk、stack_route演示已經(jīng)的路和正確的路 private void printWalking() { ()。 ()。 ()。 }// 用于timer中激發(fā)的事件,演示慢慢走路 class ActionListener_Timer implements ActionListener { public void actionPerformed(ActionEvent e) { Dimension d。 // 走完了 if (()) { // 標記正確路線 while (!()) { d = (Dimension) ()。 [][].setForeground(new Color(204, 52, 103))。 } if (!hasFound) { ( is there any way to go ? tell me !)。 } else {[ 1][ 1].setText(^^)。[0][0].setForeground(new Color(204, 52, 103))。[ 1][ 1].setForeground(new Color(204, 52, 103))。 ( Bingo ! i find it ! so easy...)。 } // 停止該定時器 ()。 } // 慢慢走中。 else { d = (Dimension) ()。 [][] .setText((count++))。 } } } private void spider(int row, int col) { // 本蜘蛛停止探測,原因:要探測區(qū)域出界 或為障礙 或已探測過 或其它蜘蛛已找到目標 if (row 0 || row rows 1 || col 0 || col cols 1 || !map[row][col] || hasFound) { return。 } // 找到了 else if ( == row amp。amp。 == col) { hasFound = true。 stack_route = (Stack) ()。 } // 向四個方向探測,順時鐘 else { // 標記已走過 map[row][col] = false。 (new Dimension(row, col))。 // 右 (new Dimension(row, col + 1))。 spider(row, col + 1)。 ()。 // 下 (new Dimension(row + 1, col))。 spider(row + 1, col)。 ()。 // 左 (new Dimension(row, col 1))。 spider(row, col 1)。 ()。 // 上 (new Dimension(row 1, col))。 spider(row 1, col)。 // ** 遞歸回來后出棧,可維持棧的原來狀態(tài),就像沒進入遞歸一樣,然后進行下面方向探測 ()。 } }} 調(diào)試分析在設(shè)計走迷宮算法的過程中,我主要是利用遞歸求解和入棧,出棧來解決的。從起點開始出發(fā),每次都首先使自身節(jié)點右邊的節(jié)點入棧,當(dāng)遇到障礙物時,使下方節(jié)點入棧,又遇到障礙物時使左方節(jié)點入棧,再使上方節(jié)點入棧,依次類推。走過的節(jié)點也算作障礙物,知道找到一條通路。再將通路節(jié)點一次出棧,并將字體顏色設(shè)置為紅色。經(jīng)過調(diào)試分析,本程序能夠完成需求分析的各項需求。五.功能說明1. 本程序的運行環(huán)境為JAVA2. 進入演示程序后即顯示圖形用戶界面:3. 單擊“Move!”按鈕即可開始走迷宮。迷宮運行后如圖紅色數(shù)字部分為其中一條通路。4. 點擊“Clean”按鈕可消除搜尋迷宮通路留下的痕跡,點擊“Move”可重新搜尋迷宮通路5. 點擊“Reset”可復(fù)位,即顯示出原先的迷宮。6. 進度條可控制搜尋迷宮通路過程的速度。六、 存在的問題及解決方案 本次數(shù)據(jù)結(jié)構(gòu)課程設(shè)計,我設(shè)計的是迷宮通路求解。主要使用了JAVA AWT包和JAVA SWING包。在求解迷宮算法的設(shè)計中,雖然能有一條通路,但路徑唯一,可多設(shè)置幾條路徑使迷宮難度增加。
點擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1