文档介绍:数据结构课程设计报告题目:迷宫问题院系名称:专业名称:班级:学号:学生姓名:指导教师:时间:,,、,通过输入文件名(*.in),(*.out),、,(系统中必须有迷宫,否则程序无法进行),,()选择需求:\选择1,用户输入迷宫,,,,,():(structNode*head):():():():():判断迷宫是否有路径,若有路径进行下一步,():():用户输入迷宫程序,并且在有路径时保存迷宫(用户自行命名文件名)():():标记最短路径,(),save():():():():()readhead()选择:ii=3;out();read1();Print2();i=1;PrintMaze();savehead();i=2;out();read();终止程序Print()PD()MazePath();save();Change();savejie();Print2();RTCrpUDGiTi=4迷宫无路径定义链表,{ charname[20];/迷宫文件名/ intm;/行数/ intn;/列数/ charjie[20];/最短路径文件名/ structNode*next;}Node;typedefstruct{intr,c;/*迷宫中位置地坐标*/}PosType;typedefstruct{intm,n;chararr[SIZE][SIZE];/*用二维数组表示迷宫*/}MazeType;确定放入栈中地元素地存储结构,表明通道块在路径上地“序号”,{intstep;PosTypeseat;/*当前位置在迷宫中地坐标*/intdi;/*从当前位置走到下一位置地方向*/}ElemType;{ElemTypedata[SIZE];inttop;}SeqStack;(SeqStack*s){ s->top=-1;}(SeqStack*s,ElemTypee){ if(s->top==SIZE-1)return0; s->top++; s->data[s->top]=e; return1;}(SeqStack*s,ElemType*e){ if(s->top==-1) return0; else { *e=s->data[s->top]; s->top--; return1; }}(SeqStack*s,ElemType*e){ if(s->top==-1) return0; else { *e=s->data[s->top]; return1; }}(SeqStack*s){ if(s->top==-1) return1; else return0;}定义在探索过程中地方向关系PosTypeNextPoint(PosTypecurpos,intdi){switch(di) {case