序号学号姓名成绩指导教师(签名)学期:2017 秋季学期 任课教师:实验题目:组员及组长:承担工作:联系电话:电子邮件:完成提交时间:年月日一、【实验构思(Conceive)】(10%)(本部分应包括:描述实验实现的基本思路,包括所用到的离散数学、工程数学、程序设计等相关知识,对问题进行概要性地分析)首先输入迷宫数据,在计算机的屏幕上显示一个 8 行 8 列的矩阵表示迷宫。矩阵中的每个数据或为通路(以 0 表示),或为墙(以 1 表示),所求路径必须是简单路径,即在求得的路径上不能重复出现同一道块。假设以栈 S 记录“当前路径”,则栈顶中存放的是“当前路径上最后一个通道块”。由此,“纳入路径”的操作为“当前位置入栈”;从当前路径删除前一通道块的操作为“出栈”。若找到出口,则从栈中弹出数据,在屏幕上显示从入口到出口的路径坐标。二、【实验设计(Design)】(20%)(本部分应包括:抽象数据类型的定义和基本操作说明,程序包含的模块以及各模块间的调用关系,关键算法伪码描述及程序流程图等,如有界面则需包括界面设计,功能说明等)1、定义坐标(X,Y):structCoor{introw;intcolumn;intdirection;};2、定义方向:structMove{introw;intcolumn;};3、定义/链表结点:structLinkNode{Coordata;LinkNode*next;};4、定义栈:classstack{private:LinkNode*top;public:stack。;~stack();voidPush(Coordata);CoorPop();CoorGetPopO;voidClear();boolIsEmptyO;};5•流程图:三、【实现(IImplement)】(30%)(本部分应包括:抽象数据类型各操作的具体实现代码、关键操作的具体算法实现、函数实现,主程序实现等,并给出关键算法的时间复杂度分析。如有界面则需包括界面的关键实现方法等。)1•定义迷宫定义移动的 4 个方向:Movemove[4]={{o,1},{1,o},{o,-1},{-1,o}};2•几个函数功能的描述:stack。;〃构造函数,置空栈~stack();〃析构函数voidPush(Coordata);〃把元素 data 压入栈中CoorPop();〃使栈顶元素出栈CoorGetPop();〃取出栈顶元素voidClear。;〃把栈清空boolIsEmptyO;〃判断栈是否为空boolMazepath(int**maze,intm,intn);〃寻找迷宫 maze 中从(o,0)到(m,n)的路径〃到则返回 true,否则返回 falsevoidPrintPath(stackp);//输出迷宫的路径voidPrintPath2(intm,intn,stackp,int**maze);//输出路径voidRestore(int**maze,intm,intn);//恢复迷宫3.主函数实现:intmain(){system("colorf5");intm=0,n=0;i...