数据结构之递归Demo(走迷宫)(八皇后)(汉诺塔)
递归 顾名思义,递归就是递归就是递归就是递归就是递归......就是递归 Google递归:😄 走迷宫(较容易): 构建一个二维数组(如下图),其中1表示围墙,0表示通路,现要求从起点走到终点。利用递归可以以少量代码实现。 由于比较简单,直接上代码分析: 参数 i,j 为迷宫起始坐标,而要走出迷宫,必须绕过围墙1,走迷宫当然有策略,这里比较简单的给出了下右上左的次序判断是否通路,同样也可以上右下左,左上右下,左下右上,注意必须是闭环的,否则绝对走不出迷宫!(这里强烈建议按照代码自己思考走一遍或者debug分析一下) 1 // 下右上左 2 public static boolean setWay( int [][] array, int i, int j) { 3 if (array[6][6] == 7) // 判断每一种选择最后是否能走出迷宫 4 return true ; 5 else { 6 if (array[i][j] == 0 ) { 7 array[i][j] = 7; // 表示此坐标已经来过,下面接着判断各种情况 8 if (setWay(array, i + 1 , j)) 9 return true ; 10 else if (setWay(array, i, j + 1 )) 11 return true ; 12 else if