- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构--迷宫求解()
实验报告
题目:迷宫求解
一、需求分析
1.本演示程序运用栈的结构求解迷宫。
2.实现一个以顺序表或链表做存储结构的栈类型,编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出。
3.程序执行的命令是:对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。
4.迷宫的测试数据如下:左上角(1,1)为入口,右下角(3,4)为出口。
二、编码实现
1.存储类型
typedef struct
{
zuobiao *base;
zuobiao *top;
}Sqstack;
2.部分函数的伪码算法
//构造一个栈
void Initstack(Sqstack s)
{
s.base=(zuobiao *)malloc(100*sizeof(zuobiao));
s.top=s.base;
}
//入栈操作
void push(Sqstack s,zuobiao e)
{
(*s.top).x=e.x;
(*s.top).y=e.y;
s.top++;
}
//出栈
void pop(Sqstack s,zuobiao e)
{
s.top--;
e.x=(*s.top).x;
e.y=(*s.top).y;
}
//取栈顶元素
void gettop(Sqstack s,zuobiao e)
{
s.top--;
e.x=(*s.top).x;
e.y=(*s.top).y;
//迷宫求解
int mgqj(int mg[6][6],Sqstack s)
{
zi[1]=0;zj[1]=1;//东
zi[2]=1;zj[2]=0;//南
zi[3]=0;zj[3]=-1;//西
zi[4]=-1;zj[4]=0;//北
i=1;j=1;
e.x=1;e.y=1;
push(s,e);
mg[1][1]=-1;
do
{
for(v=1;v=4;v++)
{
m=i+zi[v];
n=j+zj[v];
if(mg[m][n]==0)
{
mg[m][n]=-1;
i=m;j=n;
e.x=m;e.y=n;
push(s,e);
break;}
else continue;
}
if(v==5s.top!=s.base)
{
pop(s,e);
gettop(s,e);
i=e.x;j=e.y;
}
}
while(s.top!=s.base(i!=4||j!=4));
if(i==4j==4) return 1;
else return 0;
}
三、调试分析
1.由于忽略算法和程序的区别,首次运行存在许多错误
2.本次作业题目虽然算法较长,但要求清晰,易形成思路。
3.经验体会:在程序中适当加以注释,将使程序调试变得非常简便,可以加快找到程序中的疵点。编制程序时应先建立大体框架,再将各部分细化,掌握从算法到程序的转换得方法
四、测试结果
除输出整个迷宫外,还输出:(1,1)(1,2)(2,2)(3,2)(3,3)(3,4)
五、附录
带注释的源程序如下
#includestdio.h
#includestdlib.h
typedef struct
{
int x;
int y;
}zuobiao;
typedef struct
{
zuobiao *base;
zuobiao *top;
}Sqstack;
void Initstack(Sqstack s)
{
s.base=(zuobiao *)malloc(100*sizeof(zuobiao));
s.top=s.base;
}
void push(Sqstack s,zuobiao e)
{
(*s.top).x=e.x;
(*s.top).y=e.y;
s.top++;
}
void pop(Sqstack s,zuobiao e)
{
s.top--;
e.x=(*s.top).x;
e.y=(*s.top).y;
}
void gettop(Sqstack s,zuobiao e)
{
s.top--;
e.x=(*s.top).x;
e.y=(*s.top).y;
}
int mgqj(int mg[6][6],Sqstack s)
{
int i,j,v,m,n,zi[5],zj[5];
zuobiao e;
zi[1]=0;zj[1]=1;
zi[2]=1;zj[2]=0;
zi[3]=0;zj[3]=-1;
zi[4]=-1;zj[4]=0;
i=1;j=1;
e.x=1;e.y=1;
push(s,e);
您可能关注的文档
- 2013大同区县汽车巡展.ppt
- 第2章 JavaScript DOM编程.ppt
- 补充_SQL应用举例.ppt
- TOP-BOSS企业模拟对抗.doc
- How much are these socks 课件A.ppt
- 大学本科vfp,ppt课件6.ppt
- 第9课 修改零件模型.ppt
- 高中英语:Unit 10《Money》测试(北师大版必修4).doc
- 第二章:Silverlight编程模型.ppt
- 汉洛塔的实现-数据结构.doc
- 2025年工业机器人协作作业安全标准制定与设备可靠性研究.docx
- 食品加工企业2025年节能减排技术改造成本分析报告.docx
- 2025年跨境母婴产品直邮服务平台供应链管理优化策略报告.docx
- 音乐艺术教育跨境展演平台内容质量评估与风险防控.docx
- 咖啡连锁品牌扩张战略:2025年创新产品与服务开发报告.docx
- 2025年远程医疗在分级诊疗中的基层医疗机构能力提升研究报告.docx
- 数字文化企业商业模式创新与核心竞争力提升报告.docx
- 2025年脑机接口技术在儿童脑瘫治疗中的转化应用研究.docx
- 远程医疗服务在分级诊疗中的远程医疗设备标准化与互联互通报告.docx
- 2025年有机食品市场分析与生产绿色化发展研究报告.docx
最近下载
- 最地震演练脚本.docx VIP
- 《国有企业管理人员处分条例》解读.docx VIP
- 《无机及分析化学》课件 第7章 物质结构基础.ppt VIP
- Kyocera京瓷ECOSYS M4125idn_M4132idn操作手册.pdf
- 含糖透析液对血透病人的影响.doc VIP
- RADWIN5000安装调试指南.doc VIP
- 无机及分析化学:第四章 物质结构简介.ppt VIP
- 体育康养与自然疗法的结合研究论文.docx VIP
- 2025年广东省基层住院医师线上岗位培训《医学人文及医患沟通》-中医学专业培训课程公共课答案.docx VIP
- 含糖透析液对糖尿病肾病血液透析患者血压和心率变异性影响.doc VIP
文档评论(0)