課程設計報告 迷宮

2021-08-05 20:22:54 字數 2595 閱讀 8925

學院計算機學院

課程名稱資料結構

專業班級: 2011級電腦科學與技術

學生姓名: 朱振飛學號: 13

學生姓名: 李勇髮學號: 53

指導教師白偉華

完成時間:2023年6月25日

目錄(4號黑體字,居中排版)

1 迷宮問題 1

1.1 概述 1

1.2 實驗內容 1

1.3 概要設計 1

1.4 除錯分析 4

1.5 源程式** 5

說明:目錄自動生成,各級標題為小4號宋體,行距1.5倍行距。

1 迷宮問題(4號黑體字)

1.1 概述(小4號黑體字,段前段後0.5行,以下相同)

本課程設計利用棧的先進後出,確立迷宮路徑以解決問題。(漢字正文小4號宋體,英文及數字小4號times new roman 字型,行距為固定值20磅,以下相同)

使用語言:c語言

編譯環境:vc++ 6.0

1.2 實驗內容(小4號黑體字,段前段後0.5行,以下相同)

1、問題描述

以乙個m*n的長方陣表示迷宮,0和1分別表示迷宮中的通路和障礙。設計乙個程式,對任意設定的迷宮,求出一條從入口到出口的通路,或得出沒有通路的結論。

基本要求:

(1)實現乙個以煉表作儲存結構的棧型別,然後編寫乙個求解迷宮的非遞迴程式。求得的通路以三元組(i,j,d)的形式輸出,其中:(i,j)指示迷宮中的乙個座標,d表示走到下一座標的方向。

(2)編寫遞迴形式的演算法,求得迷宮中所有可能的通路;

(3)以方陣形式輸出迷宮及其通路。

2、需求分析

(1)以非遞迴方法求出一條迷宮通路。

(2)以遞迴方法求出所有迷宮通路。

(3)以方陣輸出迷宮和通路。

1.3 概要設計

1、儲存結構

typedef struct //迷宮定義

sd;typedef struct point //結點結構定義

point;

2、函式

sd creat() //迷宮建立函式

int found(int x,int y,point * head) //結點判斷函式

point * secret(sd a) //迷宮函式

void disp(point *po) //輸出函式

void main() //主函式

3、流程圖

…………………

1.4 除錯分析

1、問題分析

(1)當輸入的迷宮有出路時,能夠成功輸出所有的移動位置,但當輸入的迷宮沒有出路時,程式會發生錯誤而自動關閉。原因不明

2、執行結果

(1)輸入迷宮

輸入:enter row and lie: 3 4

enter 1 row:0 0 1 0

enter 2 row:1 0 0 1

enter 3 row:1 1 0 0

輸出:<1,1,1><1,2,2><2,2,1><2,3,2><3,3,1><3,4,0>

1.5 源程式**

#include

#include

#define maxsize 100

#define null 0

typedef struct //迷宮定義

sd;typedef struct point //結點結構定義

point;

sd creat() //迷宮建立函式

return a;

}int found(int x,int y,point * head) //結點判斷函式

return 0; //否則返回0

}point * secret(sd a)

if(m!=0) //結點符合條件,則j賦值為1,退出while迴圈

j=1;

break;

else //若無,則j加1

j++;

}if(j>4) //若無路可走

}while(top->vex_x!=a.max_x||top->vex_y!=a.max_y);

//當當前結點不是出口時,就一直執行迴圈

return top;

}void disp(point *po) //輸出函式

{ int i=0,top=0;

point *stack[maxsize]; //用陣列存放迷宮出路

if(po==null)

printf("no load!\n");

else

{while(po!=null)

stack[top]=po;

top++;

po=po->next;

while(top>0)

top輸出stack中的結果

if(top==0)

stack[top]->direction=0;

printf("(%d,%d,%d)",stack[top]->vex_x,stack[top]->vex_y,stack[top]->direction);

i++;

if(i%8==0滿8個輸出結果進行換行

資料結構課程設計報告迷宮

題目 迷宮問題 姓名 學號 班級 指導教師 2012年6月6日 1.問題描述 輸入任意大小的迷宮資料,用遞迴和非遞迴方法求出一條走出迷宮的路徑,並將路徑輸出。2.設計思路 以 0和1分別表示迷宮中的通路和障礙,沒有通路則不顯示。未顯示為得出沒有通路的結論 走迷宮的方式是乙個乙個的線路去試如果是死路的...

資料結構課程設計報告 迷宮求解問題

課題設計1 迷宮求解 一.需求分析 本程式是利用非遞迴的方法求出一條走出迷宮的路徑,並將路徑輸出。首先由使用者輸入一組二維陣列來組成迷宮,確認後程式自動執行,當迷宮有完整路徑可以通過時,以0和1所組成的迷宮形式輸出,標記所走過的路徑結束程式 當迷宮無路徑時,提示輸入錯誤結束程式。二 概要設計 1.抽...

資料結構課程設計 迷宮 工作日誌

備註 必須與自己的專案緊密結合,按照工作階段和進度真實填寫。每人每週填寫1份,從第10周周一開始,共填寫個6周,每週五統一提交。備註 必須與自己的專案緊密結合,按照工作階段和進度真實填寫。每人每週填寫1份,從第10周周一開始,共填寫個6周,每週五統一提交。備註 必須與自己的專案緊密結合,按照工作階段...