




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告数据结构课程设计报告设计题目:迷宫 年 级 计科09级 班 级 092 ,093 姓 名 学 号 指导教师 起止时间 2011.12.9 2011 年 第2 学期 五C语言源代码#include#include#includeint m,n;int *maze = NULL;struct Element int i;int j;int di;typedef struct LinkStack struct Element element;struct LinkStack * next;struct LinkStack * prior;LinkStack;LinkStack *top = NULL;LinkStack *head = NULL;int count=0; int mgpath(int xi,int yi,int xe,int ye);void printMaze(int * maze)int i,j;printf(您的迷宫图如下所示:n); for(i=0; im+2; i+)for(j=0; jn+2; j+)printf(%4d,mazeij);printf(n);printf(n*n);void addWall(int * maze)int i,j;for(i=0; im+2; i+) for(j=0; j0 & i(m+2-1) mazei0=1;mazein+2-1=1;break;if(i=m+2-1) mazeij=1; int * initMaze() int i,j;int flag = 0;printf(请输入迷宫的行数 m=); scanf(%d,&m); printf(请输入迷宫的列数 n=); scanf(%d,&n); maze = (int *)malloc(sizeof(int *) * (m+2); printf(n*n);for(i=0; in+2; i+) *(maze+i) = (int *)malloc(sizeof(int)*(n+2); addWall(maze);/给迷宫加墙 printf(n请输入迷宫的各行各列(注意:最后一个数需要是0):n用空格隔开,0代表路,1代表墙nn);for(i=1;i=m;i+) for(j=1;jelement.di; LinkStack *node= (LinkStack *) malloc(sizeof(LinkStack); node-element.di = di;if(top = NULL)head = (LinkStack *) malloc(sizeof(LinkStack);head-element.i = 1;head-element.j = 0;head-element.di = 1;head-prior = NULL;top = head;node-element.i = 1;node-element.j = 1;node-element.di = -1;top-next = node;node-next = NULL;node-prior = top; top = node; di = top-element.di;while(diprior-element.i - 1;j = top-prior-element.j;break;case 1:i = top-prior-element.i;j = top-prior-element.j + 1;break;case 2:i = top-prior-element.i + 1;j = top-prior-element.j;break; case 3: i = top-prior-element.i;j = top-prior-element.j - 1;break; if(mazeij = 0)find = 1; if(i = m & j = n) top-element.i = m;top-element.j = n;top-prior-element.di = di;printf(%4d:,+count);LinkStack * n = head-next;while(n != NULL) printf(%d,%d,%d ) ,n-element.i,n-element.j,n-element.di);printf( - );if(k + 1)%5 = 0) printf(nt);k+;n = n-next;printf(出口);printf(n);mazetop-element.itop-element.j = 0;top = top-prior; free(node);mazePath();elseif(find = 1)top-prior-element.di = di; top-element.i = i;top-element.j = j; top-element.di = -1;mazeij = -1;mazePath();elsemazetop-prior-element.itop-prior-element.j = 0; top = top-prior-prior; free(node);mazePath();int mgpath(int xi,int yi,int xe,int ye)printf(非递归通路:n);int i,j;int find;int di;LinkStack *node= (LinkStack *) malloc(sizeof(LinkStack); head = (LinkStack *) malloc(sizeof(LinkStack);head-element.i = 1;head-element.j = 0;head-element.di = 1;head-prior = NULL;top = head;node-element.i = xi; node-element.j = yi;node-element.di = -1;maze11=1; top-next = node;head-next=node;node-next = NULL;node-prior = top;di=node-element.di;top=node;LinkStack * n = head-next;while(top-prior!= NULL)find=0;di=top-element.di;while(dielement.i-1;j=top-element.j;break;case 1:i=top-element.i;j=top-element.j+1;break;case 2:i=top-element.i+1;j=top-element.j;break;case 3:i=top-element.i,j=top-element.j-1;break;default:if(mazeij=0)find=1;top-element.di=di;printf(find找到的点%d,%d,%d,i,j);if(find=1)if(i=xe&j=ye&mazeij=0) LinkStack *node1= (LinkStack *) malloc(sizeof(LinkStack); top-element.di=di;node1-element.i=i;node1-element.j=j;node1-element.di=-1;top-next=node1;node1-next=NULL;node1-prior=top;top=node1;mazeij=1;printf( );while(n!=NULL)printf(%d,%d,%d),n-element.i,n-element.j,n-element.di);printf( - );n=n-next;printf(出口);printf(n);return(0);elseLinkStack *node1= (LinkStack *) malloc(sizeof(LinkStack);top-element.di=di;node1-element.i=i;node1-element.j=j;node1-element.di=-1;top-next=node1;node1-next=NULL;node1-prior=top;top=node1;mazeij=1;printf(找到的节点有%d,%d,%d,node1-element.i,node1-element.j,node1-element.di);elsemazetop-element.itop-element.j=0;top = top-prior;free(top-next);return(0); int main()int i;initMaze();mazePath();if(count=0)printf(*);printf(n该迷宫没有通路n);return 0; printf(n*n);mgpath(1,1,m,n);if(head != NULL) free(head);return 0;六测试分析(运行结果) 迷宫的测试数据如下:左上角(1,1)为入口,右下角(8,9)为出口。输入数据:0 1 0 10 0 0 10 0 0 00 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮外包经营合同范本
- 建筑委托采购合同范本
- 纱窗装修合同范本
- 踝关节骨折内固定术后护理查房
- 农机设备合同范本
- 安全机械租赁合同范本
- 仓库置物架安装合同范本
- 木板材购销合同范本
- 栏杆工人劳务合同范本
- 典当房转让合同范本
- 纺织品运输供货方案
- GB/T 11334-2005产品几何量技术规范(GPS)圆锥公差
- FZ/T 07013-2021绿色设计产品评价技术规范色纺纱
- 催产引产-课件
- 【社会层面】社会主义核心价值观
- 变更风险识别、评估记录表参考模板范本
- 2022年基本公共卫生服务项目宣传工作计划
- 癫痫病人的护理查房ppt课件(PPT 24页)
- DB45T2053-2019 重质碳酸钙单位产品能源消耗限额
- 红金简约风教师退休欢送会PPT通用模板
- 水准点复测记录(自动计算表)
评论
0/150
提交评论