当前位置: 代码迷 >> 综合 >> 数据结构 课程设计 实例
  详细解决方案

数据结构 课程设计 实例

热度:38   发布时间:2023-12-13 13:13:08.0

设计示例 迷宫问题

问题描述

以一个m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。

基本要求

首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。如:对于下列数据的迷宫,输出的一条通路为:

(1,1,1),(1,2,2),(2,2,2),(3,2,3),(3,1,2)……

测试数据

迷宫的测试数据如下:左上角(1,1)为入口,右下角(9,8)为出口。

0

0

1

0

0

0

1

0

0

0

1

0

0

0

1

0

0

0

0

0

1

1

0

1

0

1

1

1

0

0

1

0

0

0

0

1

0

0

0

0

0

1

0

0

0

1

0

1

0

1

1

1

1

0

0

1

1

1

0

0

0

1

0

1

1

1

0

0

0

0

0

0

 

 

 

 

 

 

 

 

 

 

 

 

实现提示

计算机解迷宫通常用的是“穷举求解”方法,即从入口出发,顺着某一个方向进行探索,若能走通,则继续往前进;否则沿着原路退回,换一个方向继续探索,直至出口位置,求得一条通路。假如所有可能的通路都探索到而未能到达出口,则所设定的迷宫没有通路。

可以二维数组存储迷宫数据,通常设定入口点的下标为(1,1),出口点的下标为(m,n)。为处理方便起见,可在迷宫的四周加一圈障碍。对于迷宫中任一位置,均可约定有东、南、西、北四个方向可通。

选作内容

(1)    编写递归形式的算法,求得迷宫中所有可能的通路;

(2)    以方阵形式输出迷宫及其通路。

 

课程设计报告示例?

  相关解决方案