- 73
- 0
- 约1.27万字
- 约 29页
- 2018-06-20 发布于浙江
- 举报
数据结构课程设计之九宫实验报告
九宫问题
一、简介
1.设计目的:通过实践掌握用广度优先搜索解决问题的方法
2.问题的描述: 在一个3*3的九宫中,有1—8这8个数,及一个空格随机的摆放在其中的格子里。如下面左图所示。要求实现这样的问题:将九宫问题调整为如右图所示的形式。调整的规则是:每次只能将与空格(上、下或左、右)相邻的一个数字平移到空格中。
要求:问你通过移动中间的空格是否能达到右图所示的状态,如果能,则输出所走的路径,如果不能,则输出:unsolvable。最好能画出九宫的图形形式,并在其上动态的演示移动过程。
数据结构的设计:
1:为了了解九宫格的状态所以需要记录九宫格的当前状态
2:因为要采用是两端同时开始搜索的方法,所以要记录结点是从那个方向搜索到的
3:为了减少重复搜索,所以要记录当前状态是由父结点怎么移动得来的
4:需要输出路径,所以得记录从根节点到当前结点空格的移动路径
5:需要一个队列来实现广度优先搜索
6:还需要以一种便于访问的方式记录下所有已经访问过的结点,所以构造一个哈希表
7:便于找到答案后释放所用空间,还需要将所有已搜索过的结点构造成一个链表
综上定义如下结构体:
typedef struct LNode{
int data;//用一个各位不相等的9位数来表示当前状态,9表示空格
int flag;//0表
原创力文档

文档评论(0)