




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
一、
需求分析1、對于給定的一個迷宮,給出一個出口和入口,找一條從入口到出有這樣通路的信息。2、可以用一個
的長方陣表示迷宮,0
和
1
分別表示迷宮中的通路和障礙。設(shè)計一個程序,對任意設(shè)定的迷宮,求出一條從入口到出口的通路,或得出沒有通路的結(jié)論。3、編寫一個求解迷宮的非遞歸程序。求得的通路以三元組(i,j,
表示走到下一坐標(biāo)的方向。對應(yīng)的矩陣表示,所以程序的輸入包括了矩陣的行數(shù)、列數(shù)、迷宮內(nèi)墻的個數(shù)、迷宮內(nèi)墻的坐標(biāo)、所求的通路的入口坐標(biāo)、出口坐標(biāo)。
0
和
1
分別代表通道和障礙物,所以只需要隨機生成0
和
1
然后再給最外圍都賦值為1,就形成了新的迷宮。二、詳細設(shè)計1、計算機解迷宮通常用的是“窮舉求解“方法,即從人口出發(fā),順著某一個方向進行探索,若能走通,則繼續(xù)往前進;否則沿著原路退回,換一個方向繼續(xù)探索,直至出口位置,求得一條通路。假如所有可能的通路都探索到而未能到達出口,則所設(shè)定的迷宮沒有通路。點的下標(biāo)為(n,n)。為處理方便起見,可在迷宮的四周加一圈障礙。對于迷宮中任一位置,均可約定有東、南、西、北四個方向可通。2、如果在某個位置上四個方向都走不通的話,就退回到前一個位沒有走通,那就說明這個迷宮根本不通。重復(fù)走第二次",它包括"曾經(jīng)走過而沒有走通的路"。顯然為了保證在任何位置上都能沿原路退回,需要用一個"后進先出"的結(jié)構(gòu)即棧來保存從入口到當(dāng)前位置的路徑。并且在走出出口之后,棧中保存的正是一條從入口到出口的路徑。,
,道塊。北)上相鄰的方塊。假設(shè)以棧
S
“ ?!?。5、找通路的程序的關(guān)鍵部分可以表示如下:do{若當(dāng)前位置可通,則{將當(dāng)前位置插入棧頂; //
納入路徑若該位置是出口位置,則算法結(jié)束;//
此時棧中存放的是一條從入口位置到出口位置的路徑否則切換當(dāng)前位置的東鄰方塊為新的當(dāng)前位置;}否則{若棧不空且棧頂位置尚有其他方向未被探索,則設(shè)定新的當(dāng)前位置為:
沿順時針方向旋轉(zhuǎn)找到的棧頂位置的下一相鄰塊;若棧不空但棧頂位置的四周均不可通,則{
刪去棧頂位置; //
從路徑中刪去該通道塊若棧不空,則重新測試新的棧頂位置,直至找到一個可通的相鄰塊或出棧至棧空;}}}
while
6、程序中用的數(shù)據(jù)結(jié)構(gòu)解析:①
可以出棧,退回到前一個位置再繼續(xù)探索通路,棧的定義如下:struct
SqStack{SElemType
*base;
//
在棧構(gòu)造之前和銷毀之后,base
的值為
NULLSElemType
*top;
//
棧頂指針int
stacksize;
//
當(dāng)前已分配的存儲空間,以元素為單位};
//
順序棧②
棧中元素的類型結(jié)構(gòu)程序中先定義了一個表示坐標(biāo)的類型結(jié)構(gòu):struct
PosType
//
迷宮坐標(biāo)位置類型{int
x;
//
行值int
y;
//
列值};棧中元素的類型結(jié)構(gòu)如下:struct
SElemType
//
棧的元素類型{int
ord;
//
通道塊在路徑上的"序號"PosType
seat;
//
通道塊在迷宮中的"坐標(biāo)位置"int
di;
//
從此通道塊走向下一通道塊的"方向"(0~3
表示東~北)};7、主函數(shù)的流程圖
三、
調(diào)試分析1、對于程序的設(shè)計由簡單到復(fù)雜,先設(shè)計一個整體的輪廓然后再慢慢的增加程序的功能,這樣能夠有效的減少錯誤,功能慢慢的增加,候比較有目的性,提高寫程序的效率。2、對于程序中的錯誤,如果遇到說變量沒有定義或者數(shù)據(jù)結(jié)構(gòu)沒定構(gòu)體之后。
printf
和
scanf
到你想要的結(jié)果。4、寫程序時一定要瞻前顧后,前后一致,包括名稱、數(shù)據(jù)類型等等。四、用戶手冊在使用程序時嚴格按照程序給出的提示一步一步來,下面給出程序正常執(zhí)行的步驟:行列數(shù)多兩行兩列。的數(shù)目。”3、程序提示“請依次輸入迷宮內(nèi)墻每個單元的行數(shù),列數(shù):,此”時要輸入迷宮中所有墻的坐標(biāo),我們用數(shù)組中的一個元素來表示墻。4、在輸入了迷宮所有內(nèi)墻的坐標(biāo)后,程序會顯示出迷宮的結(jié)構(gòu),”然后程序會提示“請輸入起點的行數(shù),列數(shù):,此時需要輸入所求通”路的起點坐標(biāo)?!?、程序提示“請輸入終點的行數(shù),列數(shù):,此時需要輸入所求通”路的終點的坐標(biāo)。6、終點坐標(biāo)輸入完畢之后,程序會顯示出兩種運行的結(jié)果,一種字表示出了通路在迷宮中是如何走的,此時迷宮中的-1
表示找通路時走過的單元但是通路不通。注意:再輸入內(nèi)墻單元的坐標(biāo)是一定要細心,不要錯輸,也不要漏輸。否則程序會出錯。五、測試結(jié)果迷宮的測試數(shù)據(jù)如下:左上角(1,1)為入口,右下角(9,8)為出口。
程序的測試結(jié)果為: 程序的開始界面六、附錄(附有完整的源程序)源程序如下:
TRUE
FALSE
ERROR
STACKINCREMENT
STACK_INIT_SIZE
//
{
x;
y;};
{
//
//
//};
{
};
S;
MAXLENGTH
//
//
//
{
OK;}
{
//
OK;}
{
ERROR;
FALSE;}
{{
*)
*
}
OK;}
{ //{
OK;}{
ERROR;}}
{}
{//
}
{}
//{
i,j;{{");");}}}
{
i,j;{{{");}
{");}
{");}}}}
{
do{
{
//
e
//
}
{{
{}
{}}}
FALSE;}
{
i,j;
}
{
i,j;
{}{}{{}}:");{}printf("**************************************************************************\n");printf("**************************************************************************\n");}
{{
}}
{
T;{{}{}}}
{
x,y;
i,j;{printf("*****************1.*****************\n");printf("*****************2.*****************
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程經(jīng)濟學(xué)課件05-第5章
- 受限空間作業(yè)知識
- 《全球飲食習(xí)俗》課件
- 標(biāo)準(zhǔn)化迎檢工作要點-2024年
- 2024模具設(shè)計師資格考試在線模擬試題及答案
- 微生物合作研究試題及答案
- 人力師培訓(xùn)課件工作團隊的心理與行為
- 專業(yè)級農(nóng)作物種子試題及答案
- 2024年農(nóng)業(yè)植保員知識要點試題及答案詳解
- 2024年游泳救生員考試教師指導(dǎo)及答案
- 針刺傷預(yù)防與處理-2024中華護理學(xué)會團體標(biāo)準(zhǔn)
- 制造業(yè)生產(chǎn)流程手冊
- 2023年安徽公務(wù)員鄉(xiāng)鎮(zhèn)崗位面試真題及解析
- GB/T 12939-2024工業(yè)車輛輪輞規(guī)格系列
- 攜程在線能力測評真題
- 7.1文化的內(nèi)涵和功能課件-高中政治統(tǒng)編版必修四哲學(xué)與文化
- 2024-2025學(xué)年上海中學(xué)高三下學(xué)期3月一??荚囉⒄Z試題含解析
- 02幾何壓軸小題-【黃金沖刺】考前10天中考數(shù)學(xué)極限滿分沖刺(浙江專用)原卷版+解析
- 數(shù)字鄉(xiāng)村網(wǎng)絡(luò)課程設(shè)計
- 基于STM32的智慧農(nóng)業(yè)監(jiān)測系統(tǒng)設(shè)計
- 元模型與元體系結(jié)構(gòu)
評論
0/150
提交評論