网站大量收购独家精品文档,联系QQ:2885784924

迷宫问题 有源代码.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
迷宫问题 有源代码

西安郵電學课程 目: 迷宫问题 院系名称: 计算机学院 专业名称: 软件工程 班 级: 1101班 学生姓名: 付添 学号(8位): 指导教师: 李培 设计起止时间:2012年月日~20年月日 设计目的 仅仅认识到队列是一种特殊的线性表是远远不够的,本次实习的目的在于使学生深入了解队列的特征,以便在实际问题背景下灵活运用它,同时还将巩固这种数据结构的构造方法 2.各个模块详细的功能描述。 (1)savefile();//从键盘输入迷宫 从键盘输入迷宫1表示墙0表示通路,并把01存入结构体m1中用flag表示通路初始化通路的标志域。 (2)inread();//从文件读出迷宫 事先已将迷宫存入文件中,从文件读出迷宫1表示墙0表示通路,并把01存入结构体m1中用flag表示通路初始化通路的标志域。 (3)zoumigong();//走迷宫 根据m1判断该坐标四周如果为墙并且标志域为0则可走,将该坐标入栈,将其标志域更改为1,更新坐标,继续判断,知道更新坐标等于出口坐标.栈中存放就是通路的逆序坐标。 (4)print1()//以坐标形式输出 将栈中坐标出栈,存入数组中以坐标形式输出。 (5)print2()//以矩阵形式输出 将栈中坐标出栈,存入数组中以矩阵形式输出。 四.详细设计 功能函数的调用关系图 2.各功能函数的数据流程图 3.重点设计及编码 typedef struct { int mg[200]; int top; }seqstack; typedef struct migong { int m1;//存放墙 int flag;//标志域 }smaze[20][20]; int empty(seqstack s)//判栈空 { if(s.top==-1) return 0; else return 1; } void pop(seqstack s,int x1)//出栈 { if(s.top==-1) return ; x1=s.mg[s.top]; s.top--; } void push(seqstack s,int y1,int x1)//入栈 { if(s.top==20) return ; s.top++; s.mg[s.top]=y1; s.top++; s.mg[s.top]=x1; } void zumigong(seqstack stack,smaze maze,int m,int n)//走迷宫 { int i,j,cout; int x1,a,b,y1,x,y,x2,y2; printf(输入入口的横纵坐标,空格隔开\n); scanf(%d %d,x,y); printf(输入出口的横纵坐标,空格隔开\n); scanf(%d %d,x2,y2); for(i=0;i=m+1;i++) { for(j=0;j=n+1;j++) { if(maze[i][j].m1==1) printf(■); else printf(□); } printf(\n); } x1=x; y1=y; if(maze[x1][y1].m1==1) { printf(此路不通:\n); return ; } if(maze[x2][y2].m1==1) printf(入口为墙。请重新输入\n); else while(x1!=x2||y1!=y2) { if(maze[x1][y1+1].m1==0maze[x1][y1+1].flag==0) cout=0; else if(maze[x1+1][y1].m1==0maze[x1+1][y1].flag==0) cout=1; else if(maze[x1-1][y1].m1==0maze[x1-1][y1].flag==0) cout=2; else if(maze[x1][y1-1].m1==0maze[x1][y1-1].flag==0) cout=3; else cout=4; switch(cout) { case 0: a=x1; b=y1; maze[x1][y1].flag=1;

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档