1 / 15
文档名称:

数据结构迷宫问题实验报告.docx

格式:docx   大小:171KB   页数:15页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构迷宫问题实验报告.docx

上传人:459972402 2019/12/24 文件大小:171 KB

下载得到文件列表

数据结构迷宫问题实验报告.docx

相关文档

文档介绍

文档介绍:《数据结构与算法设计》迷宫问题实验报告——实验二专业:物联网工程班级:物联网 1班学号:15180118姓名:刘沛航一、实验目的本程序是利用非递归的方法求出一条走出迷宫的路径,并将路径输出。首先由用户输入一组二维数组来组成迷宫, 确认后程序自动运行,当迷宫有完整路径可以通过时, 以0和1所组成的迷宫形式输出,标记所走过的路径结束程序; 当迷宫无路径时,提示输入错误结束程序。二、实验内容用一个m*m长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序对于任意设定的迷宫, 求出一条从入口到出口的通路,或得出没有通路的结论。三、程序设计1、概要设计1)设定栈的抽象数据类型定义ADTStack{数据对象:D={ai|ai属于CharSet,i=1、2⋯n,n>=0}数据关系:R={<ai-1,ai>|ai-1,ai属于D,i=2,3,⋯n}基本操作:InitStack(&S)操作结果:构造一个空栈Push(&S,e)初始条件:栈已经存在操作结果:将 e所指向的数据加入到栈 s中Pop(&S,&e)初始条件:栈已经存在操作结果:若栈不为空,用 e返回栈顶元素,并删除栈顶元素Getpop(&S,&e)初始条件:栈已经存在操作结果:若栈不为空,用 e返回栈顶元StackEmpty(&S)初始条件:栈已经存在操作结果:判断栈是否为空。若栈为空,返回 1,否则返回 0Destroy(&S)初始条件:栈已经存在操作结果:销毁栈 s}ADTStack2)设定迷宫的抽象数据类型定义ADTyanshu {数据对象:D={ai,j|ai,j 属于{‘、’‘、*’‘@’、‘#’},0<=i<=M,0<=j<=N}数据关系:R={ROW,COL}ROW={<ai-1,j,ai,j>|ai-1,j,ai,j属于D,i=1,2,⋯M,j=0,1,⋯N}COL={<ai,j-1,ai,j>|ai,j-1,ai,j属于D,i=0,1,⋯M,j=1,2,⋯N}基本操作:InitMaze(MazeType&maze,inta[][COL],introw,intcol){初始条件:二维数组inta[][COL],已经存在,其中第1至第m-1行,每行自第1到第n-1列的元素已经值,并以值0表示障碍,值1表示通路。操作结果:构造迷宫的整形数组, 以空白表示通路, 字符‘0表’示障碍在迷宫四周加上一圈障碍MazePath(&maze){初始条件:迷宫 maze已被赋值操作结果:若迷宫maze中存在一条通路,则按如下规定改变 maze的状态;以字符‘*’表示路径上的位置。字符‘@’表示‘死胡同’;否则迷宫的状态不变}PrintMaze(M){初始条件:迷宫 M已存在操作结果:以字符形式输出迷宫}}ADTmaze3)本程序包括三个模块a、主程序模块voidmain (){初始化;构造迷宫;迷宫求解;迷宫输出;}b、栈模块——实现栈的抽象数据类型c、迷宫模块——实现迷宫的抽象数据类型2、详细设计1)坐标位置类型:typedefstruct{introw; //迷宫中的行intcol; //......的列}PosType;//坐标2)迷宫类型:typedefstruct{intm,n;intarr[RANGE][RANGE];}MazeType; //迷宫类型void//设置迷宫的初值,包括边缘一圈的值BoolMazePath(MazeType&maze,PosTypestart,PosTypeend)//求解迷宫 maze中,从入口 start到出口end的一条路径//若存在,则返回 true,否则返回 falseVoidPrintMaze(MazeTypemaze)//将迷宫打印出来3)栈类型:typedefstruct{int step; //当前位置在路径上的 "序号"PosType seat; //当前的坐标位置DirectiveType di; //往下一个坐标位置的方向}SElemType;//栈的元素类型typedefstruct{SElemType*base;SElemType*top;intstacksize;}SqStack;栈的基本操作设置如下:VoidInitStack(SqStack&S)//初始化,设 S为空栈(=NUL)VoidDestroyStack(Stack&S)//销毁栈S,并释放空间VoidClearStack(SqStack&S)//将栈S清空IntStackLength(SqStack&S)//返回栈S的长度StatusStackEmpty(SqStack&S)?、若S为空栈(==NULL),则返回TRUE,否则返回FALSEStatueGetTop(SqStack&S,SEle

最近更新

2011年青海省海南中考数学真题及答案 11页

2025版企业年会大巴车租赁服务协议范本 13页

2025版体育训练基地场地租赁与运动员保障合同.. 15页

2025版保姆家庭生活管理服务合同 15页

2011年11月翻译资格英语三级笔译综合能力真题.. 38页

2025版农作物病虫害防治合同 16页

2025版出差责任免除与员工差旅安全服务保障合.. 16页

2025版出租车网约车平台合作协议书 17页

2009年湖南省衡阳市中考化学真题及答案 21页

2025版医疗行业财务外包服务合同,提高医院运.. 16页

2025版危险化学品仓储安全管理合同范本 17页

2025版厂房抵押贷款合同范本新升级-@-1 14页

2025版厂房装修及配套设施采购合同范本 16页

2025版厨师长聘用与餐饮行业发展趋势研究合作.. 11页

2025版咖啡烘焙店品牌授权及门店接手合同范本.. 19页

2025版商业综合体地下车位租赁通用合同 14页

2025版商铺租赁合同租赁期限与续约条款 13页

2025版场地有偿租赁协议书 13页

2025版城市基础设施建设采购合同模板 16页

2025版大数据处理与分析服务采购合同范本 16页

2025版婚庆合作合同范本通用 13页

2003年河南平顶山中考道德与法治真题及答案 5页

《雷达基本工作原理》PPT课件 36页

职称过渡说明 6页

立臻线长培训案例作业 6页

血透患者入院须知 2页

上海实验学校幼升小测试题 34页

四川省2022年普通高校对口招生统一考试语文真.. 10页

校园里最安静的角落-记叙文作文650字 1页

中国石化易捷便利店专题课件专题课件 36页