- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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;
您可能关注的文档
- 期货基本因素分析.ppt
- 期货公司设立营业部审批.doc
- 水泵设计基本思路.docx
- 木桶中的团队.ppt
- 本地网线路技能大赛基本技术要.doc
- 语文:人教版八年级上册第一次月考测试题.doc
- 本科、专科计算机应用基础练习题答案.doc
- 本科生团队毕业设计(论文)任务书.doc
- 机器人作业(二).doc
- 机器人足球说课稿.doc
- 金融产品2024年投资策略报告:积极适应市场风格,行为金融+机器学习新发现.pdf
- 交运物流2024年度投资策略:转型十字路,峰回路又转(2023120317).pdf
- 建材行业2024年投资策略报告:板块持续磨底,重点关注需求侧复苏.pdf
- 宏观2024年投资策略报告:复苏之路.pdf
- 光储氢2024年投资策略报告:复苏在春季,需求的非线性增长曙光初现.pdf
- 公用环保2024年投资策略报告:电改持续推进,火电盈利稳定性有望进一步提升.pdf
- 房地产2024年投资策略报告:聚焦三大工程,静待需求修复.pdf
- 保险2024年投资策略报告:资产负债匹配穿越利率周期.pdf
- 政策研究2024年宏观政策与经济形势展望:共识与分歧.pdf
- 有色金属行业2024年投资策略报告:新旧需求共振&工业原料受限,构筑有色大海星辰.pdf
文档评论(0)