顺序栈的实现.doc

顺序栈的实现.doc

ID:59510126

大小:98.00 KB

页数:12页

时间:2020-11-04

顺序栈的实现.doc_第1页
顺序栈的实现.doc_第2页
顺序栈的实现.doc_第3页
顺序栈的实现.doc_第4页
顺序栈的实现.doc_第5页
资源描述:

《顺序栈的实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据结构课程实验报告课程名称数据结构班级计算123实验日期2014.05.15-2014.05.28姓名学号实验成绩实验名称实验二顺序栈的实现实验目的及要求【实验目的】加深理解顺序栈的意义,理解用它的插入与删除操作的算法。【实验要求】首先实现一个以顺序存储结构(也可以是链式存储结构)的栈类型,然后编写一求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。(理解InitStack、StackEmpty、Push、Pop和conversion等算法。)实验题目:迷宫求解

2、实验环境硬件平台:普通的PC机软件平台:Windows7操作系统编程环境:VisualC++6.0实验内容【实验内容】用数制的转换算法调试顺序栈的基本操作算法。编写主程序调用数制的转换conversion算法,再由conversion调用InitStack、StackEmpty、Push、Pop算法。用不同的数转换成不同的进制调试程序并对相应的输出作出分析;修改输入数据,预期输出并验证输出的结果,加深对Push和Pop算法的理解。【问题描述】以一个mn的二维矩阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一

3、条(或所有)从入口到出口的通道,或得出没有通路的结论。算法描述及实验步骤实验设计:抽象数据类型:typedefstruct{intx;//当前位置的横坐标inty;//当前位置的纵坐标chartype;//当前位置的属性:墙壁或通道(0/1)boolisfoot;//判断当位置是否已走过,true代表已走过}Position;//当前位置信息typedefstruct{intorder;//脚步在地图上的序号Positionseat;//行走的当前位置intaspect;//下一步的方向}Block;//脚步typedefstruct{int

4、width;//地图的长度intheight;//地图的宽度Positionsite;//地图内的各个位置}Maze;//地图typedefstruct{Blockbase;Blocktop;intlength;intstacksize;}Stack;主程序模块:intmain(intargc,_TCHARargv[]){Positionstart,end;Blockblk;StackS;intwidth,height;printf("输入迷宫比例XY");printf("输入X:");scanf("%d",&width);printf(

5、"输入Y:");scanf("%d",&height);Mazemaze=GreatMaze(width,height);PrintMaze(maze);printf("");printf("请输入入口坐标X:");scanf("%d",&start.x);printf("请输入入口坐标Y:");scanf("%d",&start.y);printf("请输入出后坐标X:");scanf("%d",&end.x);printf("请输入出口坐标Y:");scanf("%d",&end.y);MazePath(maze,start,end,

6、S);printf("走完所需路径长度为:%d",S.length);printf("");StackSa;InitStack(Sa);while(S.length!=0){Pop(S,blk);Push(Sa,blk);}while(Sa.length!=0){Pop(Sa,blk);if(Sa.length!=0)printf("[%d,%d]->",blk.seat.x,blk.seat.y);//打印足迹elseprintf("[%d,%d]",blk.seat.x,blk.seat.y);//打印最后一步}}各子程序函数:Maz

7、eGreatMaze(intwidth,intheight)//创建地图voidPrintMaze(Mazemaze)//打印地图intPositionComparison(Positionmaze,Positionpos)//判断当前位置是否合法intPass(Mazemaze,Positioncurpos)//判断当前位置是否可以前进或者是否走过voidFootSet(Mazemaze,Positionsite)//留下足迹PositionNextPos(Position&cur,intaspect)//判断方向IntMazePath(M

8、azemaze,Positionstart,Positionend,Stack&S)//搜索从入口到出口的路径迷宫求解流程图:路径搜索算法:Do{  若当前位置可通

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

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

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