1 / 4
文档名称:

火烧连营.docx

格式:docx   大小:68KB   页数:4页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

火烧连营.docx

上传人:雾里行舟 2019/3/31 文件大小:68 KB

下载得到文件列表

火烧连营.docx

文档介绍

文档介绍:Lab_2栈和队列及其应用一、实****目的与要求1、熟练掌握栈和队列结构的概念、结构特点及相关操作(构造、入/出栈(队列)等);2、熟悉顺序栈和链式栈,循环队列和链式队列结构的特点及异同;3、选择并设计合适的栈或队列结构解决实际应用问题。4、从以下题目选择至少1题完成。二、实****题目【题目】火烧连营【问题描述】“火烧连营”是三国演义中的著名典故之一广为流传,,每个字符A代表一个营帐,营帐是可燃物,其他字符代表不可燃的空白地段,文件共有40行70列。【基本要求】请你编写程序,读入文本文件的内容。提供MFC界面,输入任意点的x和y值(x<70,y<40)作为着火点,“火烧连营”后,被燃烧的营帐标上字符’X’,。【实现提示】基本思想:从着火点位置开始,按四连通思想上下左右寻找其邻居点……实现思路:开辟一个堆栈,先将着火点压栈,然后重复以下操作:栈顶点出栈并标记‘X’,同时将符合被燃烧条件的邻居点入栈……,直到栈空为止。输出:X序列,搜索可以燃烧的字符!【测试数据】【算法分析与设计】问题分析与设计思想该程序的实现需要做到文件的输入输出,栈的应用,以及MFC的使用。读取文件中的数据,然后储存在数组中,在利用算法实现其中字符的改变,最后再将字符存入文件中,保存起来。算法实现思想:开辟一个堆栈,从着火点位置开始,按四连通思想上下左右寻找其邻居点,先将着火点压栈,然后重复以下操作:栈顶点出栈并标记‘X’,同时将符合被燃烧条件的邻居点入栈……,直到栈空为止。:使用fstream的头文件以及循环成功将数据导入。。二位数组作参数传递,得把每个数组的首地址传过去才行。。需要压栈的是二位数组的下标,是一个坐标。解决方法有两个:一是定义一个Point类,作为坐标。二则是利用出入栈的有序性,两个数一组。。文件新建的位置需要自定义,但是我想要的是在当前目录下创建。最后使用windows下的一个能够获得当前路径的函数解决这个问题。。不懂MFC的使用,研究了好大一会儿你,最后放弃了。效率分析与改进设想根据设计思想,该程序的时间效率为O(n)。由于设计思想和基本算法没有变化,所以其在效率上改进方法还未想到。【源代码】 见附件。【运行结果】实****小结通过这次的实****的实****我的收获有:熟悉了文件的输入输出流。学会了在当前目录下创建文件的方法。熟悉并巩固了二维数组的参数传递问题。掌握栈和队列结构的概念、结构特点及相关操作(构造