网站大量收购独家精品文档,联系QQ:2885784924

数据结构:线性表实验报告内容实例[精品].ppt

数据结构:线性表实验报告内容实例[精品].ppt

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构:线性表实验报告内容实例[精品]

实验报告内容: 实验题目: 1、问题描述及分析 2、设计 (1)数据结构设计 (2)算法设计 3、实现 (1)程序结构描述 (2)完整程序 (3)测试数据及预期结果 4、调试与分析 (1)实验结果 (2)与预期结果比较并分析 5、总结:本次实验完成的内容、体会 实验要求: 1、为确保上机实验的效果,在 上机实验之前要作好充分准备工作,写好实验报告1-3 2、 实验过程根据需要可以用红笔修改实验报告 3、 实验结束填写实验报告4-5 4 、实验报告在上机结束后当场提交。 附录:实验报告样本 实验题目:利用栈实现迷宫的求解 1、问题描述及分析 问题描述:心理学家把一只老鼠从一个无顶盖的大盒子的入口处赶进迷宫。迷宫中设置很多墙壁,对前进方向形成了多处障碍,心理学家在迷宫的唯一出口放置了一块奶酪,吸引老鼠在迷宫中寻找通路以到达出口。 分析:迷宫可以用二维数组表示,该问题可以归结为寻找一条从入口到出口的路径。 2、设计: 1)数据结构的设计 (1)迷宫的表示 设迷宫为m行n列,利用二维数组maze[m][n]来表示一个迷宫,其中(1,1)为入口,(m,n)为出口, maze[m][n]=0或1,其中0表示通路,1表示不通。 0 1 1 1 0 1 1 1 1 0 1 0 1 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 1 2 3 4 5 6 7 8 1 2 3 4 5 6 入口 出口 0 1 1 1 0 1 1 1 1 0 1 0 1 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 迷宫定义 #define m 6 #define n 8 int maze[m+2][n+2] 当从某点向试探时,之间点有8个方向可以试探,而四个角点有3个方向,其他边缘点有5个方向,为使问题简单化,在迷宫的四周加了一层,表示墙壁,这样每个点的试探方向为8。 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 0 (2)试探方向的表示 在上述表示迷宫的情况下,每个点有8个方向可以试探,设当前点的坐标为(x,y),与其相邻的8个点的坐标可根据与该点的相邻方位得到。为了方便求出新点的坐标,将从正东开始沿顺时针进行的这8个方向的坐标增量放在一个结构数组move[8]中,其中x表示横坐标增量,y表示纵坐标增量。 (x,y+1) (x,y-1) (x-1,y) (x+1,y) (x+1,y+1) (x-1,y+1) (x-1,y-1) (x+1,y-1) (x,y) 试探方向的表示 typedef struct {int x,y;}item; item move[8]= {{0,1}, {1,1}, {1,0},{1,-1}, {0,-1}, {-1,-1}, {-1,0},{-1,1} }; (3)栈的表示 当到达了某点无路可走,需从前一点的下一个方向试探。因此,压入栈中的不仅是顺序到达的各点的坐标,而且还有从前一点到达本点的方向序号。 栈的表示 #define MAXSIZE 20 typedef struct {int x,y,d; }datatype; typedef struct {datatype data[MAXSIZE]; int top; }SeqStack; 2)算法的设计 (2)防止重复到达某点的考虑 为避免发生死循环,当到达某点(i,j)后,使maze[i][j]置-1,以便区分未到达过的顶点。算法结束前可恢复原迷宫。 1,1,-1 top (1)算法基本思想描述: 利用回溯法,从入口处出发,按某一方向不断试探,若能走通,则到达新点,否则试探另一未试探过的方向。若所有的方向均没有通路,则沿原路返回前一点,换一个未试探过的通路继续试探,直到找到出口,或所有的通路都试探过,未找到一条通路回到出口点。 在试探过程中,为保证在到达某一点无路时,能正确返回前一点,需要用一个栈来保存到达的每一点的位置及试探方向。 (3)算法描述 int path(int maze[m+2][n+2],item move[8],sepstack s) /*maze为迷宫,move为试

文档评论(0)

bodkd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档