数据结构上机实验报告-迷宫求解.docx

数据结构上机实验报告-迷宫求解.docx

ID:61499641

大小:27.10 KB

页数:14页

时间:2021-02-07

数据结构上机实验报告-迷宫求解.docx_第1页
数据结构上机实验报告-迷宫求解.docx_第2页
数据结构上机实验报告-迷宫求解.docx_第3页
数据结构上机实验报告-迷宫求解.docx_第4页
数据结构上机实验报告-迷宫求解.docx_第5页
资源描述:

《数据结构上机实验报告-迷宫求解.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、数据结构上机实验报告迷宫求解陈冠豪二O一O年5月26号任务:可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并将路径输出;   实验目的实现代码://////////ByLea//////////////////////////////////#include#include/*数据定义*/typedefenum{ERROR,OK}Status;typedefstruct{introw;//row表示"行"号intline;//line表示"列"号}PosType;//位置的元素类型typedefstruc

2、t{intord;//该通道在路径上的"序号"PosTypeseat;//通道块在迷宫中的"坐标位置"intdi;//从此通道走向下以通道块的"方向"}SElemType;//栈的元素类型typedefstruct{SElemType*base;SElemType*top;intstacksize;}SqStack;/*函数原型说明*/StatusInitStack(SqStack&S);//创建一个空栈SStatusPush(SqStack&S,SElemType&a);//插入新元素aStatusPop(SqStack&S,SElemType&a);//删除栈顶

3、元素,a返回其值StatusStackEmpty(SqStackS);//检查是否空栈StatusMazePath(intmaze[12][12],SqStack&S,PosTypestart,PosTypeend);//找通路voidInitmaze(intmaze[12][12],intx,inty);//初始化迷宫voidprintmaze(intmaze[12][12],intx,inty);//显示迷宫StatusPass(intmaze[12][12],PosTypeCurPos);//判断当前位置是否可通voidMarkfoot(intmaze[12]

4、[12],PosTypeCurPos);//标记当前位置不可通PosTypeNextPos(PosTypeCurPos,intDir);//进入下一位置voidprintpath(intmaze[12][12],SqStackS,intx,inty,PosTypestart,PosTypeend);//显示通路/*主函数*/voidmain(void){PosTypestart,end;intt=0;SqStackS;intmaze[12][12];do{if(t!=0)printf("");for(inti=0;i<20;i++){printf("*");}i

5、f(t==0){printf("*t欢迎来到迷宫世界t*");printf("*t1.设置迷宫tt*");}else{printf("*请继续选择:ttt*");printf("*t1.设置迷宫tt*");}printf("*t2.设置迷宫路径tt*");printf("*t3.输出迷宫通路路径t*");printf("*t4.结束ttt*");t++;for(intj=0;j<20;j++){printf("*");}printf("");ints;printf("请选择:");sca

6、nf("%d",&s);intaa;intx,y;switch(s){case1://1.初始化迷宫aa=1;printf("迷宫设置:请输入");//设置迷宫大小do{printf("行X(x<10)=");scanf("%d",&x);printf("列Y(y<10)=");scanf("%d",&y);if(x<1

7、

8、x>10

9、

10、y<1

11、

12、y>10){printf("输入错误!");}}while(x<1

13、

14、x>10

15、

16、y<1

17、

18、y>10);Initmaze(maze,x,y);//初始化迷宫printmaze(maze,x,y);//显示所创建的迷宫

19、break;case2://寻找迷宫路径if(aa==1){aa=2;//设置入口和出口do{printf("输入入口行坐标:");scanf("%d",&start.row);if(start.row>x)printf("输入错误!");}while(start.row>x);do{printf("输入入口列坐标:");scanf("%d",&start.line);if(start.line>y)printf("输入错误!");}while(start.line>y);do{printf("输入出口行坐标:");scanf("%d",&end.row

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。