迷宫求解问题
摘
要:用矩阵表示迷宫,将矩阵表示的迷宫转换成无向图,
用邻接表存储。对无向图从入
口结点开始广度优先搜索,
用一个一维数组存储各个结点的前驱结点的编号,
通过出口结点
Vn
找到其前驱结点
Vn-1,
再通过
Vn-1
找到
Vn-2
,依次类推直到找到出口结点。
关键字:矩阵
迷宫求解
一、需求分析
1.
程序题目:
迷宫求解问题。
迷宫是一个如下所示的
m
行
n
列的
0-1
矩阵,
0
表示无障碍,
1
表示有障碍。
设入口为(
1
,
1
)
,出口为(
m
,
n
)
,每次移动只能从一个无障碍的单元移到周围
8
个方向
的任意一个无障碍的单元,
编写程序给出一条通过迷宫的路径或者报告一个
“无法通过”
的
信息。
入口
->(0
,
0
,
0
,
1
,
0
,
0
,
0
,
1
,
0
,
0
,
0
,
1
,
0
,
0
,
1)
(0
,
1
,
0
,
0
,
0
,
1
,
0
,
1
,
0
,
0
,
0
,
1
,
1
,
1
,
1)
(0
,
1
,
1
,
1
,
1
,
1
,
0
,
1
,
0
,
0
,
1
,
1
,
1
,
0
,
1)
(1
,
1
,
0
,
0
,
0
,
1
,
1
,
0
,
1
,
1
,
0
,
0
,
1
,
0
,
1)
(1
,
0
,
0
,
1
,
0
,
1
,
1
,
1
,
1
,
0
,
1
,
0
,
1
,
0
,
1)
(1
,
0
,
1
,
0
,
0
,
1
,
0
,
1
,
0
,
1
,
0
,
1
,
0
,
1
,
0)
(1
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
1
,
1
,
1
,
1
,
0
,
0)
(1
,
1
,
1
,
0
,
1
,
1
,
1
,
1
,
0
,
1
,
0
,
1
,
0
,
1
,
0)
(1
,
0
,
1
,
0
,
1
,
0
,
1
,
1
,
1
,
0
,
1
,
0
,
0
,
0
,
1)
(0
,
1
,
0
,
1
,
0
,
1
,
0
,
0
,
0
,
1
,
1
,
0
,
0
,
1
,
0)->
出口
2
.程序说明及任务: