- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
迷宫问题实验报告(c编写,附源代码)
迷宫问题实验报告
级 班 年 月 日姓名 学号_
。
设定迷宫或自动生成迷宫。设定迷宫或自动生成迷宫。 typedef struct//定义迷宫结构体
{
int maze_array[maxsize][maxsize];//二维数组存放迷宫每个点是通畅或阻隔的信息
int max_x,max_y; //迷宫的行数和和列数
}
定义迷宫中点的指针的结构体
typedef struct point
{
int vex_x,vex_y; //结点的横纵坐标(横坐标为行号,纵坐标为列号)
struct point *ahead;//在链栈中,指向前一个结点的指针
int direction; //从当前结点走至下一个结点的方向
};
基本操作:
A. Maze creat_manual()
初始条件:无 操作结果:手动创建一个迷宫。
B. Maze creat_automatic()
初始条件:无
操作结果:自动创建一个迷宫。
C. int found(int x,int y,Point *head)
初始条件:存在一个存放结点的链栈
操作结果:查找栈中是否有head指针内所含的坐标;若含,则返回1,否则返回0。
D. Point * find_road(Maze a)
初始条件:存在一个迷宫
操作结果:返回一条通路或者NULL
E. void display(Point *po,Maze a)
初始条件:存在一个迷宫
操作结果:输出结果。
程序包含6个函数:
主函数main() 手动创建一个迷宫 Maze creat_manual();
自动创建一个迷宫 Maze creat_automatic();
查找栈中是否有head指针内所含的坐标 int found(int x,int y,Point *head);
迷宫寻路函数 Point * find_road(Maze a);
显示迷宫信息函数 void display(Point *po,Maze a);
各函数间关系如下:
4.详细设计
定义迷宫结构体
typedef struct
{
int maze_array[maxsize][maxsize];
//二维数组存放迷宫每个点是通畅或阻隔的信息
int max_x,max_y; //迷宫的行数和和列数
}Maze;
定义迷宫中点的指针的结构体
typedef struct point
{
int vex_x,vex_y; //结点的横纵坐标(横坐标为行号,纵坐标为列号)
struct point *ahead;//在链栈中,指向前一个结点的指针
int direction; //从当前结点走至下一个结点的方向
}Point;
迷宫的基本操作如下
Maze creat_manual()//手动创建迷宫
{
输入迷宫的行数和列数;
依次输入各点的值;
}
Maze creat_automatic()//自动创建迷宫
{
输入迷宫的行数和列数;
随机产生各点的值;
入口结点和出口结点赋值为0;
打印迷宫;
}
int found(int x,int y,Point *head)
{
查找栈中是否有head指针内所含的坐标
若含,则返回1;
否则返回0
}
Point * find_road(Maze a)//迷宫寻路函数,返回一条通路或者NULL
{ int j,find,x,y;
do
{ while(方向j4)
{ find=0;
switch(j)//1234分别表示东南西北
{ case 1:
if(纵坐标加1后在迷宫内,且当前结点为0,且当前结点没有在栈中出现)
{
当前结点进栈;
把方向j赋予当前结点方向;
find=1;
}break;
case 2:
if(横坐标加1后在迷宫内,且当前结点为0,且当前结点没有在栈中出现)
{ 当前结点进栈;
把方向j赋予当前结点方向;
find=1;
}break;
case 3:
if(纵坐标减1后在迷宫内,且当前结点为0,且当前结点没有在栈中出
文档评论(0)