1、 1 课课 程程 设设 计计 课程名称:课程名称: 数据结构数据结构 学院学院名称:名称: 班班 号:号: 姓姓 名:名: 指导教师:指导教师: 2 目录 一、迷宫问题 二、订票系统 三、一元多项式计算 四、猴子选大王 五、纸牌游戏 六、拓扑排序 七、文章编辑 八、总结 3 迷宫问题迷宫问题 一、需求分析需求分析: 利用非递归的方法求出一条走出迷宫的路径,并将路径输出。 首先由用户输入一组二维数组来组成迷宫, 确认后程序自动运行, 当迷宫有完整路径可以通 过时,以 0 和 1 所组成的迷宫形式输出,标记所走过的路径结束程序;当迷宫无路径时,提 示输入错误结束程序。 二、概要设计概要设计: 1.
2、抽象数据类型定义: ADT Find 数据对象:D=ai?ai ElemSet,i=1,2,n,n0 数据关系:R1=?ai-1, aiD 基本操作: find ( typedef struct/*试探方向*/ int x,y; item; item move8=0,1,1,1,1,0,1,-1,0,-1,-1,-1,-1,0,-1,1; typedef struct/*栈元素设计*/ int x,y,d; 4 datetype; typedef struct/*栈*/ datetype datamaxsize; int top; SeqStack; SeqStack *Init_SeqSta
3、ck()/*置空栈*/ SeqStack *s; s=(SeqStack *)malloc(sizeof(SeqStack); s-top=0;return s; int Empty_SeqStack(SeqStack *s)/*判栈空*/ if(s-top=0)return 1; else return 0; int Push_SeqStack(SeqStack *s,datetype x)/*入栈*/ if(s-top=maxsize-1)return 0; elses-top+; s-datas-top=x;return 1; int Pop_SeqStack(SeqStack *s,d
4、atetype *x)/*出栈*/ if(Empty_SeqStack(s)return 0; else *x=s-datas-top; s-top-; return 1; int path(SeqStack *s)/*寻找路径*/ datetype temp; int x,y,d,i,j; temp.x=1;temp.y=1;temp.d=-1; Push_SeqStack (s,temp); while (!Empty_SeqStack(s) Pop_SeqStack (s, x=temp.x;y=temp.y;d=temp.d+1; while (ddatai.x,s-datai.y,s-datai.d);