小时候玩过的移动拼图游戏。有一个3*3的棋盘,其中有0-8这9个数字,0表示空格,每次移动只能把空格旁边的数字移到空格,即与0相邻的数字可以和0交换位置。
求从初始状态
2 3 0
7 1 6
5 8 4
变到目标状态
1 2 3
4 5 6
7 8 0
的最佳移动方案。
今天先用BFS练练手。
每个结点用一个长度为9的数组记录当前矩阵;用blankPos变量记录空格位置,便于计算出相邻结点;用parent指针指向BFS过程中的父节点&
小时候玩过的移动拼图游戏。有一个3*3的棋盘,其中有0-8这9个数字,0表示空格,每次移动只能把空格旁边的数字移到空格,即与0相邻的数字可以和0交换位置。
求从初始状态
2 3 0
7 1 6
5 8 4
变到目标状态
1 2 3
4 5 6
7 8 0
的最佳移动方案。
今天先用BFS练练手。
每个结点用一个长度为9的数组记录当前矩阵;用blankPos变量记录空格位置,便于计算出相邻结点;用parent指针指向BFS过程中的父节点&