篇一 :迷宫求解实验报告

数据结构

(迷宫求解实验报告)

一、【实验构思(Conceive)】(10%)

(本部分应包括:描述实验实现的基本思路,包括所用到的离散数学、工程数学、程序设计、算法等相关知识)

实验实现基本思路:若当前位置可通,则纳入当前路径,并继续朝下一个位置探索,即切换下一位置为当前位置,如此重复直至到达出口;若当前位置不可通,则应顺着来向退回到前一通道块,然后朝着除来向之外的其他方向继续探索;若该通道块的四周4个方块均不可通,则应从当前路径上删除该通道块。设以栈记录当前路径,则栈顶中存放的是当前路径上最后一个通道块。由此,纳入路径的操作即为当前位置入栈;从当前路径上删除前一通道块的才操作即为出栈。

二、【实验设计(Design)】(20%)

(本部分应包括:抽象数据类型的功能规格说明、主程序模块、各子程序模块的伪码说明,主程序模块与各子程序模块间的调用关系)

抽象数据类型:typedef struct

{

                 int x;  //当前位置的横坐标

                 int y;  //当前位置的纵坐标

                 char type;  //当前位置的属性:墙壁或通道(0/1)

                 bool isfoot;  //判断当位置是否已走过, true代表已走过

…… …… 余下全文

篇二 :迷宫实验实验报告

迷宫实验

一.摘要

迷宫实验主要是要探讨研究一个人只靠自己的动觉,触觉和记忆获得信息的情况下,如何学会在空间中定向。本实验的被试是华东师范大学应用心理学系大二的一名女同学,本实验以学习遍数为自变量,以所用时间和错误次数为因变量,让被试在排除视觉条件下,用小棒从迷宫起点凹槽移动到达终点,其间小棒每次进入盲巷并与盲巷末端金属片接触算一次错误,学会的定义为连续三遍不出错。而且主试也不能给予被试任何提示或暗示。被试要运用动觉,思维,记忆等自己认为有效的方法独立完成。测试中为了控制疲劳带来的误差,若被试感到疲劳,可稍事休息再进行实验。分析实验数据可知,被试走完迷宫所用时间成减少趋势,错误次数也成减少趋势。在最初几次走迷宫时,错误次数会出现反复的时多时少的情况,所用时间也在反复,时多时少,这表明被试在摸索迷宫路线,处于对整个迷宫的整体定位中。随着学习遍数的增加,错误次数与走完一次迷宫所用的时间开始减少,这表明被试对于迷宫的整体情况有了比较清楚的了解。

关键词 迷宫 学习次数 学习时间 错误次数

二.引言

人类从十九世纪末就开始研究迷宫学习了。1899 年,斯莫尔(W. S. Small ) 让白鼠学习一条相当复杂的迷津通路。通过研究他认为,白鼠迷宫学习所依靠的主要是触觉和动觉记忆。1912 年希克思(V. C. Hicks) 和卡尔把迷宫用于研究人类学习。泊金斯(Perkins,1927)最早使用这种在手指迷宫的基础上发展起来的最简便、最常用的触棒迷宫(pencil maze)。近年来,学者们则利用迷宫进行逆反学习能力的研究。而在特殊教育领域,也利用迷宫队正常人和盲人进行了触棒迷宫的对比试验,并得出了盲人心理的巨大补偿作用和学习潜能的结论。

迷宫是研究一个人只靠自己的动觉、触觉和记忆获得信息的情况下,如何学会在空间中定向。迷宫的种类很多,结构方式也不一样,但是有一个特征,这就是有一条从起点到终点的正确途径与从此分出的若干条盲巷。被试的任务是寻找与巩固掌握这条正确途径。迷宫的学习一般可分为四个阶段:1.一般方位辨认。2.掌握迷宫的首段、尾段和中间的一、二部分。3.扩大可掌握的部分,直至全部掌握空间图形。4.形成集体对空间图形的自动化操作。迷宫学习与被试的智商有关,它涉及被试的空间定向能力、思维、记忆诸多方面。

…… …… 余下全文

篇三 :迷宫实验报告

           迷宫学习遍数对所用时间和错误次数的影响

     本实验研究的是在只靠自己的动觉、触觉和记忆获得信息的情况下,如何学会在空间中定向。

以华东师范大学心理与认知科学学院心理学系一名大二男生为被试,使用EPT713型迷宫装置,通过被试迷宫学习遍数的增加其走完迷宫所用时间和错误次数的变化,研究迷宫学习遍数对学习效果的影响。实验结果表明:随着学习遍数的增加,走完一次迷宫所需的时间整体呈减少趋势,完成一次迷宫的错误次数整体也呈现下降趋势。随着学习遍数的增加,被试对于迷宫的结构逐渐有了整体定位。

关键词   迷宫  记忆  学习遍数  错误次数  所用时间

1 引言

用迷宫(迷津)研究学习始于20世纪初。迷宫的种类很多,结构方式也不一样(本迷宫难度中等),但它们都有一条从起点到终点的正确途径与从此分出的若干盲巷。迷宫的学习一般可分为四个阶段:(1)一般的方位辨认;(2)掌握迷宫的首段、尾段和中间的一两个部分;(3)扩大可掌握的部分,直至全部掌握空间图形;(4)形成机体对空间图形的自动化操作。被试的任务是寻找与巩固掌握这条正确途径。迷宫的学习与被试的智商有关,它涉及被试的空间定向能力、思维、记忆等诸多方面。

1899 年,斯莫尔(W. S. Small ) 让白鼠学习一条相当复杂的迷津通路。通过研究他认为,白鼠迷宫学习所依靠的主要是触觉和动觉记忆。1912 年希克思(V. C. Hicks) 和卡尔把迷宫用于研究人类学习。泊金斯(Perkins,1927)最早使用这种在手指迷宫的基础上发展起来的最简便、最常用的触棒迷宫(pencil maze)。Tolman在1948年提出“认知地图”的概念,用于解释动物完成迷宫任务的成绩。他认为“在大鼠的脑中建立了某种类似于环境地图的东西”,使得它们重组获得的空间信息以建立关于环境的认知表征。虽然“认知地图说”还是一个假说,但我们也可以尝试从这个角度来看人类的迷宫学习进程。近年来,学者们则利用迷宫进行逆反学习能力的研究。而在特殊教育领域,也利用迷宫队正常人和盲人进行了触棒迷宫的对比试验,并得出了盲人心理的巨大补偿作用和学习潜能的结论。

…… …… 余下全文

篇四 :迷宫问题实验报告

武汉纺织大学数学与计算机学院

数据结构课程设计报告

迷宫问题求解

学生姓名:

    号:

    级:

指导老师:

报告日期:

一、   问题描述

以一个m x n的长方矩阵表示迷宫,1和0分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出从入口到出口的通路,或者没有通路的结论。

二、   需求分析

1、    以二维数组maze[10][10]表示迷宫,数组中以元素1表示通路,0表示障碍,迷宫的大小理论上可以不限制,但现在只提供10*10大小迷宫。

2、  迷宫的入口和出口需由用户自行设置。

3、   以长方形矩阵的形式将迷宫及其通路输出,输出中“#”表示迷宫通路,“1”表示障碍。

4、      本程序只求出一条成功的通路。但是只要对函数进行小量的修改,就可以求出其他全部的路径。

5、      程序执行命令为:(1)输入迷宫;(2)、求解迷宫;(3)、输出迷宫。

三、   概要设计

1设定栈的抽象数据类型定义:

ADT zhan{

基本操作:

InitStack(SqStack &S)

     操作结果:构造一个空栈

push(*s,*e)

          初始条件:栈已经存在

     操作结果:将e所指向的数据加入到栈s中

…… …… 余下全文

篇五 :迷宫设计实验报告

天津商业大学

《数据结构》课程设计报告


目  录

1. 课程设计的内容...................................................................... 1

2. 需求分析................................................................................. 1

3. 概要设计................................................................................. 1

3.1抽象数据类型定义........................................................... 1

3.2 模块划分......................................................................... 1

4. 详细设计................................................................................. 1

4.1 数据类型的定义.............................................................. 1

4.2 主要模块的算法描述...................................................... 1

4.3 函数之间的调用关系...................................................... 2

5. 程序运行说明与测试.............................................................. 2

…… …… 余下全文

篇六 :数据结构-迷宫-实验报告与代码

一.需求分析

本程序是利用非递归的方法求出一条走出迷宫的路径,并将路径输出。首先由用户输入一组二维数组来组成迷宫,确认后程序自动运行,当迷宫有完整路径可以通过时,以0和1所组成的迷宫形式输出,标记所走过的路径结束程序;当迷宫无路径时,提示输入错误结束程序。程序执行的命令:1创建迷宫 ;2求解迷宫;3输出迷宫求解;

二.算法设计

本程序中采用的数据模型,用到的抽象数据类型的定义,程序的主要算法流程及各模块之间的层次调用关系

程序基本结构:

数据结构迷宫实验报告与代码

数据结构迷宫实验报告与代码

设定栈的抽象数据类型定义:

ADT Stack {

数据对象:D={ai|ai∈CharSet,i=1,2,3,?..,n,n>=0;} 数据关系:R={<ai?1,ai >|ai?1,ai∈D,i=2,?,n}

设置迷宫的抽象类型

ADT maze{

数据对象:D={ai|ai∈‘ ’,‘@’,‘#’,‘1’,i=1,2,?,n,n>=0} 数据关系:R={r,c}

r={<ai-1,ai>|ai-1,ai∈D, i=1,2,?,n,}

c=<ai-1,ai>|ai-1,ai∈D, i=1,2,?,n,}

结构体定义:

typedef struct //迷宫中x行y列的位置

{ int x;

int y;

}PosType;

typedef struct //栈类型

{ int ord; //通道块在路径上的“序号”

PosType seat; //通道块在迷宫中的“坐标位置” int di; //从此通道块走向下一通道块的“方向” }MazeType;

typedef struct

{ MazeType *base;

MazeType *top;

int stacksize;

}MazeStack;

…… …… 余下全文

篇七 :数据结构上机实验报告-迷宫求解

 

 



实现代码:

 //////////By Lea//////////////

////////2010210501////////////

#include<stdio.h>

#include<stdlib.h>

/*数据定义*/

typedef enum { ERROR, OK } Status;

typedef struct        

{

            int row;            //row表示"行"号

            int line;           //line表示"列"号

}PosType;                 //位置的元素类型

typedef struct   

{

    int     ord;        //该通道在路径上的"序号"        

…… …… 余下全文

篇八 :迷宫问题实验报告

题目:编制一个求解迷宫通路的程序。

班级:11软件一班   姓名:宁雪锋   学号:1125115017  完成日期:2012/11/5

一、 需求分析

(1 )以二维数据 Maze[m+2][n+2] 表示迷宫,其中:Maze[0][j]和Maze[m+1][j]

(0<=j<=n+1 )及Maze[i][0]和Maze[i][n+1](0<=i<=m+1) 为添加一圈障碍。数组中以元素值

为0 表示通路,1 表示障碍,限定迷宫的大小 m,n<=10。

(2 )用户以文件的形式读入迷宫的数据:文件中第一行的数据为迷宫的行数 m 和列数

n ;第二行是开始点与到达点的坐标,从第 3行至第 m+2 行(每行 n 个数)为迷宫值,同一行中的两个数字之间用空白字符相隔。

(3)若设定的迷宫存在通路,则以坐标以及箭头的方式输出其通路,例如<1,1> ->  <2,2>(4 )本程序只求出一条成功的通路。然而,只需要对迷宫求解的函数作小量修改,便

可求得全部路径。

(5 )测试数据见文档data,当入口位置为(1 ,1 ),出口位置为(4 ,4 )时,输出数据应为:

 

 (6 )程序执行的命令为:

1 )文件读入数据,创建迷宫;2 )求解迷宫;3 )输出迷宫的解

二、 概要设计

说明本程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层

次(调用)关系

1.   设定栈的抽象数据类型定义:

ADT Stack{

  数据对象:D={ai|ai ∈ CharSet,i=1,2,…,n,n>=0} 

  数据关系:R1={<ai-1,ai>|ai-1,ai ∈ D,i=2,…,n}

…… …… 余下全文