栈和队列综合实验报告

上传人:桔**** 文档编号:492079678 上传时间:2022-09-14 格式:DOC 页数:3 大小:42.02KB
返回 下载 相关 举报
栈和队列综合实验报告_第1页
第1页 / 共3页
栈和队列综合实验报告_第2页
第2页 / 共3页
栈和队列综合实验报告_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《栈和队列综合实验报告》由会员分享,可在线阅读,更多相关《栈和队列综合实验报告(3页珍藏版)》请在金锄头文库上搜索。

1、 栈和队列综合实验报告一、实验目的(1)能够利用栈和队列的基本运算进行相关操作。(2)进一步熟悉文件的应用(3)加深队列和栈的数据结构理解,逐步培养解决实际问题的编程能力。二、实验环境装有Visual C6.0的计算机。本次实验共计4学时。三、实验内容以下两个实验任选一个。1、 迷宫求解设计一个迷宫求解程序,要求如下: 以M N表示长方阵表示迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 能任意设定的迷宫 (选作)如果有通路,列出所有通路提示: 以一个二维数组来表示迷宫,0和1分别表示迷宫中的通路和障碍,如下图迷宫数据为:1111111111100100010110010001011

2、000011001101110000110001000011010001001101110110111000000011111111111入口位置:1 1出口位置:8 8四、重要数据结构typedef structint j100;int top;栈顶指针,一直指向栈顶stack;/存放路径的栈int s42=0,0,0,0,0,0,0,0;/用于存放最近的四步路径坐标的数组,是即使改变的,即走一步,便将之前的坐标向前移一步,将最早的一步坐标覆盖掉,新的一步放入数组末尾其实功能和队列一样。其作用是用来判断是否产生了由于本程序算法产生的“田”字方格内的死循环而准备的,用于帮助跳出循环。五、实现思

3、路分析if(amn+1=0&k!=3)n+;k=1;o=0;else if(am+1n=0&k!=4)m+;k=2;o=0;else if(amn-1=0&k!=1)n-;k=3;o=0;else if(am-1n=0&k!=2)m-;k=4;o=0;elseo+;if(o=2)k=0;/向所在方格的四个方向探路,探路顺序为(顺时针),其中if判断条件内的&k!=n和每个语句块中的对k赋值是为防止其走回头路进入死循环,而最后一个else内语句是为了防止进入死路时,不能走回头路而造成的死循环。push(q,m,n);/没进行一次循环都会讲前进的路径入栈。if (pushf(&s00,m,n)=0

4、)k=3;/用来判断是否产生了由于本程序探路算法产生的“田”字方格内的死循环而准备的,用于帮助跳出田字循环。同时会将路径存入用于下次判断六、程序调试问题分析最开始写完时是没有死路回头机制的,然后添加了两步内寻路不回头机制。第二个是“田”字循环问题,解决方法是加入了一个记录最近四步用的数组和一个判断田字循环的函数pushf。int pushf(int *a,int m,int n)int j=0;if(m=a0&n=a1)/判断最新的一步是否和4步之前的走的是同一个坐标点,/从而返回判断值,以便跳出循环。return 0;while(j8)/如果没有发生田字训话,将4*2数组内的4组坐标向前移动覆盖掉最/早的一步,放入最新的一步。aj=aj+2;aj+1=aj+3;j=j+2;a6=m,a7=n;return 1;另外由于探路算法特新并不会产生3x3,4x4等的方阵循环。想到的隐藏问题:如果是3x3方阵,但中间的一块是墙的话就会产生3x3方阵的死循环。七、实验总结熟悉了栈的应用和操作。对问题的考虑不够彻底,且写程序前所能想到的问题少。程序整规划能力欠缺,照成可读性不高。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号