问题描述:以一个m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。
1.基本要求
(1)首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出。其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。如下图所示迷宫。从入口(1,1)到出口(8,8)的求解结果如下:
(1,1)(1,2),(2,2)(3,2)(3,1)(4,1)(5,1)(5,2)(5,3)(6,3)(6,4)(6,5)(5,5)(4,5)(4,6)(4,7)(3,7)(3,8)(4,8)(5,8)(6,8)(7,8)(8,8)
(2)以方阵形式输出迷宫及其通路。
2.重点、难点
重点:针对迷宫问题的特点,利用栈的后进先出特点,选择适当的数据结构。
难点:递归算法的设计与求解。