资料介绍
实验报告1
数据结构实验一
求 解 迷 宫 问 题
实 验 报 告
一 实验内容
由键盘输入一个8×6的矩形迷宫,用程序找出从左上角至右下角的一条通道。输出路
径号码及路线图。若无可行通道,则输出提示。
二 实验方法
要求:
键盘输入一个8×6的矩形0-1阵。0表示可行通道,1表示隔断。为便于计算,在整个
迷宫外围加一圈1构成“围墙”。要求找出从左上角0到右下角0的一条路径。将路径上各点
坐标依次输出。最后输出走通的迷宫。所走路点的0改写为2。走不通则输出提示信息。
实现:
使用递归算法,对走到的每一个路点,顺时针检查其周围的每一个点,考察其是否为
0或已走过。若非则考察下一点。若是则前进一步走到该点再作类似检查。若周围所有点
均为1或已走过,证明此路不通。退回上一点寻找其他路径。走到【8,6】点时结束。依
逆序输出所走过的每点坐标,并将走过的点改写为2。最后输出走完成的迷宫。若退回【
1,1】点。证明无路可走。则输出提示消息。也将该迷宫输出。
三 源程序
#include
const int m=6,n=8; //确定迷宫大小
int maze[m+2][n+2]; //建立储存迷宫结构的数组
int mark[m+2][n+2]; //建立记录已走过点的数组
int move[8][2]={{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1},{-1,0},{-1,1}};
//方向试探参数数组
int SeekPath(int x,int y) //寻道函数
{ i