




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本文格式為Word版,下載可任意編輯——迷宮試驗(yàn)報(bào)告一、試驗(yàn)內(nèi)容
3、迷宮問(wèn)題。假設(shè)迷宮由m行n列構(gòu)成,有一個(gè)出口和一個(gè)入口,入口坐標(biāo)為(1,1),出口坐標(biāo)為(m,n),試設(shè)計(jì)并驗(yàn)證以下算法:找出一條從入口通往出口的路徑,或報(bào)告一個(gè)“無(wú)法通過(guò)〞的信息。
(1)用C語(yǔ)言實(shí)現(xiàn)順序存儲(chǔ)隊(duì)列上的基本操作,然后利用該隊(duì)列的基本操作找出迷宮的一條最短路徑。
(2)設(shè)計(jì)一個(gè)二維數(shù)組MAZE[m+2][n+2]表示迷宮,數(shù)組元素為0表示該位置可以通過(guò),數(shù)組元素為1表示該位置不可以通行。MAZE[1][1]、MAZE[m][n]分別為迷宮的入口和出口。
(3)輸入迷宮的大小m行和n列,動(dòng)態(tài)生成二維數(shù)組;由隨機(jī)數(shù)產(chǎn)生0或1,建立迷宮,注意m*n的迷宮需要進(jìn)行擴(kuò)展,擴(kuò)展部分的元素設(shè)置為1,相當(dāng)于在迷宮周邊布上一圈不準(zhǔn)通過(guò)的墻。
(4)要求輸出模擬迷宮的二維數(shù)組;若存在最短路徑,則有出口回溯到入口(出隊(duì)列并利用棧實(shí)現(xiàn)),再打印從入口到出口的這條路徑,例如(1,1),,(i,j),,(m,n);若沒(méi)有路徑,則打印“Nopath〞。
(5)迷宮的任一位置(i,j)上均有八個(gè)可移動(dòng)的方向,用二維數(shù)組Direction存放八個(gè)方向的位置偏移量。
Direction[8][2]={{0,1},{1,1},{0,-1},{-1,-1},{1,-1},{1,0},{-1,0},{-1,1}};(6)為避免出現(xiàn)原地踏步的狀況需要標(biāo)志已經(jīng)通過(guò)的位置,采用一個(gè)標(biāo)志數(shù)組MARK[m+2][n+2],初值均為0,在尋覓路徑的過(guò)程中,若通過(guò)了位置(i,j),則將MARK[i][j]置為1。
(7)為了記錄查找過(guò)程中到達(dá)位置(i,j)及首次到達(dá)(i,j)的前一位置(i_pre,j_pre),需要記住前一位置(i_pre,j_pre)在隊(duì)列中的序號(hào)pre,即隊(duì)列中數(shù)據(jù)元素應(yīng)當(dāng)是一個(gè)三元組(i,j,pre)。
(8)探尋過(guò)程簡(jiǎn)單下:將入口MAZE[1][1]作為第一個(gè)出發(fā)點(diǎn),依次在八個(gè)方向上探尋可通行的位置,將可通行位置(i,j,pre)入隊(duì),形成第一層新的出發(fā)點(diǎn),然后依次出隊(duì),即對(duì)第一層中各個(gè)位置分別探尋它所在八個(gè)方向上的可通行位置,形成其次層新的出發(fā)點(diǎn),...,如此進(jìn)行下去,直至達(dá)到出口MAZE[m][n]或者迷宮所有位置都探尋完畢為止。
二、試驗(yàn)過(guò)程及結(jié)果
一、需求分析
1、用棧的基本操作完成迷宮問(wèn)題的求解,其中棧的基本操作作為一個(gè)獨(dú)立的模塊存在。2、以二維數(shù)組M[m+2][n+2]表示迷宮,M[i][j]表示迷宮中相應(yīng)(i,j)位置的通行狀態(tài)(0:表示可以通行,1:表示有墻,不可通行),完成迷宮的抽象數(shù)據(jù)類(lèi)型,包括出口、入口位置等。
3、用戶(hù)從屏幕上輸入迷宮,從鍵盤(pán)輸入迷宮的大小,即迷宮的長(zhǎng)和寬(由于控制臺(tái)大小限制,輸入的長(zhǎng)寬需在50以下),完成對(duì)應(yīng)迷宮的初始化。根據(jù)鍵盤(pán)輸入的迷宮規(guī)格隨機(jī)生成大小一致的迷宮,產(chǎn)生方塊的地方為墻,無(wú)方塊的地方可通過(guò),如下例所示:如下所示:
4、程序完成對(duì)迷宮路徑的探尋,為了更好地顯示出求解結(jié)果,假使存在路徑,則以長(zhǎng)方形形式將迷宮打印出來(lái),而不是只按步輸出坐標(biāo),也便于檢查路徑的正確性,用特定符號(hào)標(biāo)出迷宮的物理狀態(tài),其中字符“#〞表示出口和入口,“
M->Maze[0][k]=1;for(j=0;jMaze[j][0]=1;for(j=0;jMaze[j][width+1]=1;for(k=0;kMaze[length+1][k]=1;//設(shè)置迷宮圍墻for(j=1;jMaze[j][k]=rand()%2;//隨機(jī)生成迷宮}
M->length=length;M->width=width;M->start.row=1;M->start.col=1;M->end.row=M->length;M->end.col=M->width;M->Maze[M->start.row][M->start.col]=M->Maze[M->end.row][M->end.col]=0;//入口和出口設(shè)置*/}
voidPrintMaze(MAZEM){//打印出迷宮,包括邊界
printf(\迷宮入口:[1,1]--用#表示\\n\printf(\迷宮出口:[%d,%d]--用#表示\\n\for(row=0;rowbase)exit(OVERFLOW);S->top=S->base;//空棧的棧頂和棧底位置一致S->stacksize=STACK_INIT_SIZE;returnOK;
}
StatusStackEmpty(SqStack*S){if(S->top==S->base)returnTRUE;elsereturnFALSE;}
StatusPush(SqStack*S,SElemType*e)//在棧頂插入新的元素,入棧{if(S->top-S->base>=S->stacksize){S->base=(SElemType
*)realloc(S->base,(S->stacksize+STACKINCRENT)*sizeof(SElemType));//重新分派空間if(!S->base)exit(OVERFLOW);S->top=S->base+S->stacksize;S->stacksize+=STACKINCRENT;}*S->top++=*e;returnOK;}
StatusGetTop(SqStack*S,SElemType*e)//從棧中取元素{if(S->top==S->base)returnERROR;*e=*(S->top-1);re
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年上半年安徽蚌埠固鎮(zhèn)縣檔案展示館志愿講解員招聘3人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽滁州市定遠(yuǎn)縣總醫(yī)院招聘社會(huì)化用人167人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽滁州鳳陽(yáng)縣部分事業(yè)單位第二次招聘54人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽淮南毛集實(shí)驗(yàn)區(qū)管理委員會(huì)招聘政府工作人員25人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽亳州市譙城區(qū)事業(yè)單位招聘80人筆試易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安慶橫江集團(tuán)限責(zé)任公司第二輪高校畢業(yè)生招聘8人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年寧波慈溪市崇壽鎮(zhèn)81890公共管理服務(wù)平臺(tái)招考易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年寧波市文化廣電新聞出版局機(jī)關(guān)招考文員(編外)易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年無(wú)塵防靜電乳膠手套項(xiàng)目可行性研究報(bào)告
- 2024遼寧沈陽(yáng)水務(wù)集團(tuán)有限公司招聘32人筆試參考題庫(kù)附帶答案詳解
- 2023年廊坊市財(cái)信投資集團(tuán)有限公司招聘筆試模擬試題及答案解析
- 鐵路職工政治理論應(yīng)知應(yīng)會(huì)題庫(kù)
- 體育測(cè)量與評(píng)價(jià)-第二章-體育測(cè)量與評(píng)價(jià)的基礎(chǔ)理論課件
- 法律服務(wù)方案(投標(biāo))
- 轉(zhuǎn)移的危險(xiǎn)廢物性狀清單
- 四年級(jí)公共安全教育全冊(cè)教案(海峽教育出版社)
- 工程結(jié)構(gòu)通用規(guī)范
- 《構(gòu)成基礎(chǔ)》PPT課件(190頁(yè)P(yáng)PT)
- 四年級(jí)道德與法治從中國(guó)制造到中國(guó)創(chuàng)造
- 2021-2022新教科版四年級(jí)科學(xué)下冊(cè)全一冊(cè)全部課件(共24課)
- 3 棄渣場(chǎng)施工方案
評(píng)論
0/150
提交評(píng)論