数据结构之迷宫求解061227 杨磊.docx
- 文档编号:28666800
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:18
- 大小:46.12KB
数据结构之迷宫求解061227 杨磊.docx
《数据结构之迷宫求解061227 杨磊.docx》由会员分享,可在线阅读,更多相关《数据结构之迷宫求解061227 杨磊.docx(18页珍藏版)》请在冰豆网上搜索。
数据结构之迷宫求解061227杨磊
实验课名称:
数据结构实验二
实验名称:
迷宫求解
班级:
20130612
学号:
27
姓名:
杨磊
时间:
一、问题描述
这是心理学中的一个经典问题。
心理学家把一只老鼠从一个无顶盖的大盒子的入口处放入,让老鼠自行找到出口出来。
迷宫中设置很多障碍阻止老鼠前行,迷宫唯一的出口处放有一块奶酪,吸引老鼠找到出口。
简而言之,迷宫问题是解决从布置了许多障碍的通道中寻找出路的问题。
本题设置的迷宫如图1所示。
迷宫四周设为墙;无填充处,为可通处。
设每个点有四个可通方向,分别为东、南、西、北。
左上角为入口。
右下角为出口。
迷宫有一个入口,一个出口。
设计程序求解迷宫的一条通路。
2、数据结构设计
class类名DataType//定义描述迷宫中当前位置的类型
数据成员
访问控制权限数据类型变量名;
public:
intx;//x代表当前位置的行坐标
inty;//y代表当前位置的列坐标
intpre;//pre表示移动到下一步的方向
class类名Move//定义下一个位置的方向
数据成员
访问控制权限数据类型变量名;
public:
intx;
inty;
class类名Node//结点
数据成员
访问控制权限数据类型变量名;
public:
DataTypedata;
Node*next;
class类名stack
数据成员
访问控制权限数据类型变量名;
private:
Node*top;//指向第一个结点的栈顶指针
成员函数
访问控制权限返回值类型函数名(参数列表)
public:
stack();//构造函数,置空栈
~stack();//析构函数
voidPush(DataTypedata);//把元素data压入栈中
DataTypePop();//使栈顶元素出栈
DataTypeGetPop();//取出栈顶元素
voidClear();//把栈清空
boolIsEmpty();//判断栈是否为空,如果为空则返回1,否则返回0
三、算法设计
问题要求建立模型,确定存储结构,迷宫以m行n列的长方阵表示,0和1分别表示迷宫中通路和障碍,之后由人为控制迷宫的行数与列数。
设计流程图如图1.1所示。
图1.1设计流程图
(1)数据输入(迷宫的生成)
intmain()
{
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构之迷宫求解061227 杨磊 数据结构 迷宫 求解 061227