c語言迷宮問題的求解(棧和遞歸)(共15頁).docx
《c語言迷宮問題的求解(棧和遞歸)(共15頁).docx》由會員分享,可在線閱讀,更多相關(guān)《c語言迷宮問題的求解(棧和遞歸)(共15頁).docx(15頁珍藏版)》請在匯文網(wǎng)上搜索。
1、精選優(yōu)質(zhì)文檔-傾情為你奉上實(shí)驗(yàn)報告【實(shí)驗(yàn)名稱】項(xiàng)目一 迷宮問題的求解 【實(shí)驗(yàn)?zāi)康摹?1. 了解棧的基本操作以及充分理解棧的特點(diǎn)。熟悉掌握棧的基本操作和結(jié)構(gòu)體的運(yùn)用。2. 學(xué)會用?;蛘哌f歸方法解決迷宮問題?!緦?shí)驗(yàn)原理】1.本次實(shí)驗(yàn)中,以二維數(shù)組mazerowcol表示迷宮,0表示通路,1表示墻,在構(gòu)建迷宮時,為了清晰顯示,在最外層添加一圈墻。2.算法的核心思想是利用棧后進(jìn)先出的特點(diǎn),對迷宮進(jìn)行探索,如果此路可行,則將此坐標(biāo)的信息入棧,如果此路不通,則將此坐標(biāo)的信息出棧。3.輸入形式:根據(jù)控制臺的提示,依次輸入迷宮的行數(shù)、列數(shù),然后輸入迷宮,再輸入入口和出口坐標(biāo)。4.輸出形式:由用戶選擇,由遞歸、
2、非遞歸兩種求解方式輸出一條迷宮通路。以非遞歸方式會顯示一種求解方案,并給出相應(yīng)的三元組序列和迷宮方陣;以遞歸方式則會顯示出所有的路線?!緦?shí)驗(yàn)內(nèi)容】1. 需求分析(1) 問題描述以一個m*n的長方陣表示迷宮,0和1分別表示迷宮中的通路和障礙。設(shè)計一個程序,對任意設(shè)定的迷宮,求出一條從入口到出口的通路,或得出沒有通路的結(jié)論。要求以遞歸和非遞歸兩種方式分別輸出一條迷宮的通路,以帶方向坐標(biāo)和迷宮圖像表示。(2) 基本要求(1)首先實(shí)現(xiàn)一個以鏈表作存儲結(jié)構(gòu)的棧類型,然后編寫一個求解迷宮的非遞歸程序。求得的通路以三元組(i,j,d)的形式輸出。其中:(i,j)指示迷宮中的一個坐標(biāo),d表示走到下一坐標(biāo)的方向
3、。如,對于下列數(shù)據(jù)的迷宮,輸出一條通路為:(1,1,1),(1,2,2),(2,2,2),(3,2,3),(3,1,2),。(2)編寫遞歸形式的算法,求得迷宮中所有可能的通路。(3)以方陣形式輸出迷宮及其通路。2. 概要設(shè)計(1) 棧的抽象數(shù)據(jù)類型ADT Stack數(shù)據(jù)對象:D=ai|aiElemSet, i=1,2, ,n, n0數(shù)據(jù)關(guān)系:R1=<ai-1,ai>|ai-1,aiD, i=1,2, ,n 約定an端為棧頂,a1端為棧底?;静僮鳎?InitStack( &S ) 操作結(jié)果:構(gòu)造一個空棧S。 DestroyStack ( &S ) 初始條件:棧S已存
4、在。 操作結(jié)果:銷毀棧S。 ClearStack( &S ) 初始條件:棧S已存在。 操作結(jié)果:將S清為空棧。 StackEmpty( S ) 初始條件:棧S已存在。 操作結(jié)果:若S為空棧,則返回TRUE,否則返回FALSE。 StackLength( S ) 初始條件:棧S已存在。 操作結(jié)果:返回S的數(shù)據(jù)元素個數(shù),即棧的長度。 GetTop( S, &e ) 初始條件:棧S已存在且非空。 操作結(jié)果:用e返回S的棧頂元素。 Push( &S, e ) 初始條件:棧S已存在。 操作結(jié)果:插入元素e為新的棧頂元素。 Pop( &S, &e ) 初始條件:棧S
5、已存在且非空。 操作結(jié)果:刪除S的棧頂元素,并用e返回其值。ADT Stack(2) 程序模塊A. 主程序模塊:int main()B. 棧模塊:實(shí)現(xiàn)棧抽象數(shù)據(jù)類型C. 迷宮模塊:實(shí)現(xiàn)迷宮抽象數(shù)據(jù)類型3. 詳細(xì)設(shè)計(1) 類型定義typedef struct int x; int y;coordinate; /迷宮中坐標(biāo)類型typedef struct int x; /x行 int y; /y列 int d; /下一步的位置SElemType;/數(shù)據(jù)類型typedef struct Stack SElemType elem; struct Stack *next;Stack,*LinkStac
- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
20 積分
下載 | 加入VIP,下載共享資源 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 語言 迷宮 問題 求解 遞歸 15