迷宫问题实验报告Word文档下载推荐.docx
- 文档编号:15289487
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:9
- 大小:21KB
迷宫问题实验报告Word文档下载推荐.docx
《迷宫问题实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《迷宫问题实验报告Word文档下载推荐.docx(9页珍藏版)》请在冰豆网上搜索。
(2)、求解迷宫;
(3)、输出迷宫。
三、概要设计
1、设定栈的抽象数据类型定义:
ADTzhan{基本操作:
InitStack
操作结果:
构造一个空栈push(*s,*e)
初始条件:
栈已经存在
将e所指向的数据加入到栈s中pop(*s,*e)
若栈不为空,用e返回栈顶元素,并删除栈顶元素getpop(*s,*e)
若栈不为空,用e返回栈顶元素stackempty
判断栈是否为空。
若栈为空,返回1,否则返回0}ADTzhan2、设定迷宫的抽象数据类型定义ADTmigong{
基本操作:
Statusprint;
//显示迷宫
StatusPass;
//判断当前位置是
否可通
StatusFootPrint;
//标记当前位置已
经走过
StatusMarkPrint;
//标记当前位置
不可通
PosTypeNextPos;
//进入下一位置
}ADTyanshu
3、本程序包括三个模块a、主程序模块voidmain{
初始化;
迷宫求解;
迷宫输出;
}
b、栈模块——实现栈的抽象数据类型c、迷宫模块——实现迷宫的抽象数据类型
四、流程图
五、数据结构
typedefstruct//位置结构{introw;
//行位置intcol;
//列位置}PosType;
typedefstruct//迷宫类型{intarr[10][10];
}MazeType;
typedefstruct{
intstep;
//当前位置在路径上的”序号”
PosTypeseat;
//当前的坐标位置
DirectiveTypedi;
//往下一个坐标位置的方向
}SElemType;
typedefstruct//栈类型
{
SElemType*base;
//栈的尾指针
SElemType*top;
//栈的头指针intstacksize;
//栈的大小
}SqStack;
六、调试结果和分析
a)测试结果
实际程序执行过程如下图所示:
篇二:
迷宫求解实验报告
数据结构
(迷宫求解实验报告)
一、实验构思(Conceive)
(本部分应包括:
描述实验实现的基本思路,包括所用到的离散数学、工程数学、程序设计、算法等相关知识)
实验实现基本思路:
若当前位置可通,则纳入当前路径,并继续朝下一个位置探索,即切换下一位置为当前位置,如此重复直至到达出口;
若当前位置不可通,则应顺着来向退回到前一通道块,然后朝着除来向之外的其他方向继续探索;
若该通道块的四周4个方块均不可通,则应从当前路径上删除该通道块。
设以栈记录当前路径,则栈顶中存放的是当前路径上最后一个通道块。
由此,纳入路径的操作即为当前位置入栈;
从当前路径上删除前一通道块的才操作即为出栈。
二、实验设计
抽象数据类型的功能规格说明、主程序模块、各子程序模块的伪码说明,主程序模块与各子程序模块间的调用关系)
抽象数据类型:
typedefstruct
intx;
//当前位置的横坐标
inty;
//当前位置的纵坐标
chartype;
//当前位置的属性:
墙壁或通道
boolisfoot;
//判断当位置是否已走过,true代表已走过
}Position;
//当前位置信息
typedefstruct
intorder;
//脚步在地图上的序号Positionseat;
//行走的当前位置intaspect;
//下一步的方向
}Block;
//脚步
intwidth;
//地图的长度
intheight;
//地图的宽度
Position*site;
//地图内的各个位置
}Maze;
//地图
Block*base;
Block*top;
intlength;
intstacksize;
}Stack;
主程序模块:
intmain
Positionstart,end;
Blockblk;
StackS;
intwidth,height;
printf;
scanf;
Maze*maze=GreatMaze;
PrintMaze;
MazePath;
StackSa;
InitStack;
while
Pop;
Push;
}while{Pop;
ifprintf;
//打印足迹elseprintf;
//打印最后一步
}
各子程序函数:
Maze*GreatMaze//创建地图
voidPrintMaze//打印地图
intPositionComparison//判断当前位置是否合法intPass//判断当前位置是否可以前进或者是否走过voidFootSet//留下足迹
PositionNextPos//判断方向
IntMazePath//搜索从入口到出口的路径
三、实现描述(Implement)
抽象数据类型具体实现的函数原型说明、关键操作实现的伪码算法、函数设计、函数间的调用关系,关键的程序流程图等,给出关键算法的时间复杂度分析。
)函数间的调用关系:
详见打印版实验报告
迷宫求解流程图
路径搜索算法:
Do{
若当前位置可通,
则{
将当前位置插入栈顶;
//纳入通路
若该位置是出口位置,则结束;
//求得路径存放在栈中
否则切换当前位置的东邻方块为新的当前位置;
:
否则,
若栈不空切栈顶位置尚有其他方向未经探索,
则设定新的当前位置为沿顺时针方向旋转找到的栈顶位置的下一相邻块;
若栈不空但栈顶位置的四周均不可通;
删去栈顶位置;
//从路径中删除该通道块
若栈不空,则重新测试新的栈顶位置,
直至找到一个可通的相邻块或出栈至栈空
四、测试结果(Testing)
对实验的测试结果,应具体列出每次测试所输入的数据以及输出的数据,并对测试结果进行分析总结)
篇三:
迷宫实验实验报告
迷宫实验
一.摘要
迷宫实验主要是要探讨研究一个人只靠自己的动觉,触觉和记忆获得信息的情况下,如何学会在空间中定向。
本实验的被试是华东师范大学应用心理学系大二的一名女同学,本实验以学习遍数为自变量,以所用时间和错误次数为因变量,让被试在排除视觉条件下,用小棒从迷宫起点凹槽移动到达终点,其间小棒每次进入盲巷并与盲巷末端金属片接触算一次错误,学会的定义为连续三遍不出错。
而且主试也不能给予被试任何提示或暗示。
被试要运用动觉,思维,记忆等自己认为有效的方法独立完成。
测试中为了控制疲劳带来的误差,若被试感到疲劳,可稍事休息再进行实验。
分析实验数据可知,被试走完迷宫所用时间成减少趋势,错误次数也成减少趋势。
在最初几次走迷宫时,错误次数会出现反复的时多时少的情况,所用时间也在反复,时多时少,这表明被试在摸索迷宫路线,处于对整个迷宫的整体定位中。
随着学习遍数的增加,错误次数与走完一次迷宫所用的时间开始减少,这表明被试对于迷宫的整体情况有了比较清楚的了解。
关键词迷宫学习次数学习时间错误次数
二.引言
人类从十九世纪末就开始研究迷宫学习了。
1899年,斯莫尔让白鼠学习一条相当复杂的迷津通路。
通过研究他认为,白鼠迷宫学习所依靠的主要是触觉和动觉记忆。
1912年希克思和卡尔把迷宫用于研究人类学习。
泊金斯(Perkins,1927)最早使用这种在手指迷宫的基础上发展起来的最简便、最常用的触棒迷宫(pencilmaze)。
近年来,学者们则利用迷宫进行逆反学习能力的研究。
而在特殊教育领域,也利用迷宫队正常人和盲人进行了触棒迷宫的对比试验,并得出了盲人心理的巨大补偿作用和学习潜能的结论。
迷宫是研究一个人只靠自己的动觉、触觉和记忆获得信息的情况下,如何学会在空间中定向。
迷宫的种类很多,结构方式也不一样,但是有一个特征,这就是有一条从起点到终点的正确途径与从此分出的若干条盲巷。
被试的任务是寻找与巩固掌握这条正确途径。
迷宫的学习一般可分为四个阶段:
1.一般方位辨认。
2.掌握迷宫的首段、尾段和中间的一、二部分。
3.扩大可掌握的部分,直至全部掌握空间图形。
4.形成集体对空间图形的自动化操作。
迷宫学习与被试的智商有关,它涉及被试的空间定向能力、思维、记忆诸多方面。
在此迷宫实验中,被试排除视觉条件,用小棒从迷宫起点沿凹槽移动到达终点。
在此过程中,被试要运用动觉,思维,记忆等自己认为有效的方法独立完成。
三.方法
被试:
华东师范大学心理学系,大二女生一名,19岁
仪器材料:
EP2004型心理试验台及EPT713型迷宫装置
实验过程:
1.完成实验前准备工作,接通电源、选择时间或次数显示,被试手捏铁笔,调节遮挡板,以使被试不能看到盲道。
2.实验指导语∶这是一个走迷宫的实验。
隔条间的槽是铁笔所走的路,其中有通路和不通路两种,实验时我将引你,将笔尖放到起始位,你垂直地握着笔沿槽内行走,碰壁可向左或向右转弯,如无路可走表示为此路不通、亦会听到蜂鸣器响,这时你就得退出来,另换一条路走。
迷宫总有一条路是通的,沿着这条通路就可走到终点。
现要求你尽可能用最
短的时间、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 迷宫 问题 实验 报告