【完成题目 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)迷宫模块——实现迷宫抽象数据类型。
【源代码】
#include<stdlib.h> //库中包含 system("pause")和 rand()函数
#include<stdio.h> //c 语言里的库
#include<iostream>
#include <malloc.h>
#define OK 1
评论12
最新资源