以前学习C的时候,老师布置过一个拓展作业,实现迷宫的求解,当时没有学习数据结构,有点难以下手,现在学完数据结构已经将近2年,终于解决了这个问题。
给定一个n*m大小的迷宫,其中*代表不可通过的墙壁,”.”代表平地,S代表起点,T代表终点。每次只能 上下左右移动,求S到T的最短步数。(详见算法笔记P278)
这是一个搜索问题,利用BFS实现思路很简单,当从S广搜到T时,当前的层数就是最短的步数。
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
const int maxn =