- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实用标准文案
精彩文档
【完成题目3】迷宫求解
【问题描述】
以一个m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。
【基本要求】
首先实现一个栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。
【算法设计】
本实验的目的是设计一个程序,实现手动或者自动生成一个n×m矩阵的迷宫,寻找一条从入口点到出口点的通路。我们将其简化成具体实验内容如下:
选择手动或者自动生成一个n×m的迷宫,将迷宫的左上角作入口,右下角作出口,设“0”为通路,“1”为障碍,即无法穿越。假设从起点出发,目的为右下角终点,可向“上、下、左、右、左上、左下、右上、右下”8个方向行走。如果迷宫可以走通,则用“■”代表“1”,用“□”代表“0”,用“→”代表行走迷宫的路径。输出迷宫原型图、迷宫路线图以及迷宫行走路径。如果迷宫为死迷宫,输出信息。
可以二维数组存储迷宫数据,用户指定入口下标和出口下标。为处理方便起见,可在迷宫的四周加一圈障碍。对于迷宫中任一位置,均可约定有东、南、西、北四个方向可通。
本程序包含三个模块
1)主程序模块:
void main()
{
初始化;
do {
接受命令;
处理命令;
} while (命令! = 退出);
}
2)栈模块——实现栈抽象数据类型;
3)迷宫模块——实现迷宫抽象数据类型。
【源代码】
#includestdlib.h //库中包含system(pause)和rand()函数
#includestdio.h //c语言里的库
#includeiostream
#include malloc.h
#define OK 1
#define ERROR 0
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define OVERFLOW -1
#define M 49
#define N 49
using namespace std;
int maze[M][N];
typedef int Status;
typedef struct
{
int m,n,direc;
}MazeType,*LMazeType;
typedef struct
{
LMazeType top;
LMazeType base;
int stacksize;
int over;
}Stack;
void Init_hand_Maze(int maze[M][N],int m,int n)
{
int i,j;
for(i=1;i=m+1;i++)
for(j=1;j=n+1;j++)
{
maze[i][j]=1;
}
cout请按行输入迷宫,0表示通路,1表示障碍:endl;
for(i=1;im+1;i++)
for(j=1;jn+1;j++)
cinmaze[i][j];
for(i=1;im+1;i++)
{
for(j=1;jn+1;j++)
{
if(maze[i][j]!=0maze[i][j]!=1){
cout 您输入有误,请重新输入;
Init_hand_Maze(maze,m,n);
}
}
}
}
void Init_automatic_Maze(int maze[M][N],int m,int n) //自动生成迷宫
{
int i,j;
cout\n迷宫生成中……\n\n;
system(pause);
for(i=1;im+1;i++)
for(j=1;jn+1;j++)
maze[i][j]=rand()%2; //随机生成0、1
}
void PrintMaze(int maze[M][N],int row,int col)
{
int i,j;
cout迷宫如图所示.endl;
for(i=1;irow+1;i++)
{
for(j=1;jcol+1;j++)
{
if(maze[i][j]==1)
co
您可能关注的文档
- 初中的几何辅助线大全 最全.doc
- 初中的健康教育教案设计.doc
- 初中的力学公式详解(超详细).doc
- 初中的难度几何100的题目.doc
- 初中的年级标点符号选择的题目20道、病句修改的题目20道(含解析汇报).doc
- 初中的三角形总复习+中考几何的题目证明思路的总结.doc
- 初中的数学计算的题目(200道).doc
- 初中的数学平面几何的题目20道,学习辅助线地添加。.doc
- 初中的文言文拓展阅读100篇加问题详解.doc
- 初中的物理电路动态分析报告专的题目练习.doc
- 2025年度国务院国资委干部教育培训中心招聘(2人)模拟试卷带答案详解(完整版).docx
- 2025年北京市东城区卫生健康委所属事业单位第一次招聘(396人模拟试卷带答案详解(名师推荐).docx
- 2025年扎鲁特旗开发城镇公益性岗位的(55人)笔试备考试题含答案详解(模拟题).docx
- 2025年度哈尔滨“丁香人才周”(春季)南岗区所属事业单位招聘工考前自测高频考点模拟试题附答案详解(.docx
- 2025年重庆市渝中区教育事业单位面向2025年应届毕业教育部直属师笔试备考试题有完整答案详解.docx
- 2025年海城市司法局、共青团海城市委员会公益性岗位招聘(5人笔试备考试题含答案详解(培优b卷).docx
- 2025年度甘肃省高级人民法院及直属法院遴选法官(6人)笔试备考试题附答案详解(模拟题).docx
- 非银行金融机构的监管与发展研究.docx
- 面向未来的材料科学实验技术.docx
- 非银行金融行业的未来展望及监管措施创新.docx
最近下载
- 年产十万吨氯甲烷生产工艺的设计.docx VIP
- 2021-2022学年四川省成都市高新区四年级(下)期末数学试卷.doc VIP
- 《住院患者身体约束的护理》团体标准解读PPT.pptx
- 阳澄湖大闸蟹品牌建设发展中存在的问题与对策研究.docx
- PPT模板--国庆模板.ppt VIP
- 业委会选聘物业公司工作程序.pptx VIP
- 西方文学经典鉴赏智慧树知到期末考试答案章节答案2024年北京师范大学.docx VIP
- 二级注册计量师计量法律法规及综合知识(计量综合知识)模拟试卷14(1).pdf VIP
- 北京市朝阳区2025年中考二模英语试题 .pdf VIP
- 中考《物态变化》100道选择题含答案.pdf VIP
文档评论(0)