下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上數(shù)據(jù)結(jié)構(gòu)集中上機(jī)報告第一題:迷宮求解(參見教材描述)任務(wù):可以輸入一個任意大小的迷宮數(shù)據(jù),用非遞歸的方法求出一條走出迷宮的路徑,并將路徑輸出;源程序:#include #include #define M 15 #define N 15 struct mark /定義迷宮內(nèi)點的坐標(biāo)類型 int x; int y; ; struct Element int x,y; /x行,y列 int d; /d下一步的方向 ; typedef struct LStack /鏈棧 Element elem; struct LStack *next; *PLStack; int Ini
2、tStack(PLStack &S)/構(gòu)造空棧 S=NULL; return 1; int StackEmpty(PLStack S)/判斷棧是否為空 if(S=NULL) return 1; else return 0; int Push(PLStack &S, Element e)/壓入新數(shù)據(jù)元素 PLStack p; p=(PLStack)malloc(sizeof(LStack); p-elem=e; p-next=S; S=p; return 1; int Pop(PLStack &S,Element &e) /棧頂元素出棧 PLStack p; if(!StackEmpty(S)
3、e=S-elem; p=S; S=S-next; free(p); return 1; else return 0; void MazePath(struct mark start,struct mark end,int mazeMN,int diradd42) int i,j,d;int a,b; Element elem,e; PLStack S1, S2; InitStack(S1); InitStack(S2); mazestart.xstart.y=2; /入口點作上標(biāo)記 elem.x=start.x; elem.y=start.y; elem.d=-1; /開始為-1 Push(S
4、1,elem); while(!StackEmpty(S1) /棧不為空 有路徑可走 Pop(S1,elem); i=elem.x; j=elem.y; d=elem.d+1; /下一個方向 while(d(%d,%d,%d),e.x,e.y,e.d); return; /跳出兩層循環(huán) if(mazeab=0) /找到可以前進(jìn)的非出口的點 mazeab=2; /標(biāo)記走過此點 elem.x=i; elem.y=j; elem.d=d; Push(S1,elem); /當(dāng)前位置入棧 i=a; /下一點轉(zhuǎn)化為當(dāng)前點 j=b; d=-1; d+; printf(沒有找到可以走出此迷宮的路徑n); /*
5、建立迷宮*/ void initmaze(int mazeMN) int i,j; int m,n; /迷宮行,列 printf(請輸入迷宮的行數(shù) m=); scanf(%d,&m); printf(請輸入迷宮的列數(shù) n=); scanf(%d,&n); printf(n請輸入迷宮的各行各列:n用空格隔開,0代表路,1代表墻n,m,n); for(i=1;i=m;i+) for(j=1;j=n;j+) scanf(%d,&mazeij); printf(你建立的迷宮為:n); for(i=0;i=m+1;i+) / mazei0=1; mazein+1=1; for(j=0;j=n+1;j+)
6、 maze0j=1; mazem+1j=1; for(i=0;i=m+1;i+) /輸出迷宮 for(j=0;j=n+1;j+) printf(%d ,mazeij); printf(n); void main() int stoMN; struct mark start,end; /start,end入口和出口的坐標(biāo) int add42=0,1,1,0,0,-1,-1,0;/行增量和列增量 方向依次為東西南北 initmaze(sto);/建立迷宮 printf(輸入入口的橫坐標(biāo),縱坐標(biāo)逗號隔開n); scanf(%d,%d,&start.x,&start.y); printf(輸入出口的橫坐標(biāo),縱坐標(biāo)逗號隔開
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《會計基礎(chǔ)習(xí)題集》高職全套教學(xué)課件
- 心理效應(yīng) 課件
- 2024年1月福建省普通高中學(xué)業(yè)水平合格性考試化學(xué)試題(解析版)
- 第二單元 習(xí)作:多彩的生活(教學(xué))-六年級語文上冊單元作文能力提升(統(tǒng)編版)
- 西京學(xué)院《現(xiàn)代信號處理》2021-2022學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《企業(yè)戰(zhàn)略與風(fēng)險管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《基礎(chǔ)護(hù)理學(xué)》2022-2023學(xué)年第一學(xué)期期末試卷
- 齊白石介紹課件
- 移動機(jī)器人原理與技術(shù) 課件 第3、4章 移動機(jī)器人的傳感器、移動機(jī)器人定位
- 西華師范大學(xué)《地理課程與教學(xué)論》2021-2022學(xué)年第一學(xué)期期末試卷
- 控制輸血嚴(yán)重危害的專項方案
- GH/T 1418-2023野生食用菌保育促繁技術(shù)規(guī)程干巴菌
- pmma粒料制造工藝
- 2021年上海市春考高考英語試卷(精校Word版含答案)
- 人工智能行業(yè)就業(yè)前景與擇業(yè)指南
- 《智能物聯(lián)網(wǎng)導(dǎo)論》AIoT導(dǎo)論-第3章課件
- 指導(dǎo)教師在全科醫(yī)學(xué)教育中的角色與培訓(xùn)
- 《華住酒店集團(tuán)》課件
- 2024胃腸鏡健康宣教
- 一覽100本教師必讀書目 表格版
- 路基工程質(zhì)量通病及防治措施
評論
0/150
提交評論