1、迷宫回溯问题
package com.yhb.code.datastructer.recursion¥5;public class MiGong {public static void main(String[] args) {int[][] map = new int[8][7];for (int i = 0; i < 7; i++) {map[0][i] = 1;map[7][i] = 1;}for (int i = 0; i < 8; i++) {map[i][0] = 1;map[i][6] = 1;}map[3][1] = 1;map[3][2] = 1;
System.out.println("地图的情况");for (int i = 0; i < 8; i++) {for (int j = 0; j < 7; j++) {System.out.print(map[i][j] + " ");}System.out.println();}setWay(map, 1, 1);
System.out.println("小球走过,并标识过的 地图的情况");for (int i = 0; i < 8; i++) {for (int j = 0; j < 7; j++) {System.out.print(map[i][j] + " ");}System.out.println();}}public static boolean setWay(int[][] map, int i, int j) {if(map[6][5] == 2) { return true;} else {if(map[i][j] == 0) { map[i][j] = 2; if(setWay(map, i+1, j)) {return true;} else if (setWay(map, i, j+1)) { return true;} else if (setWay(map, i-1, j)) { return true;} else if (setWay(map, i, j-1)){ return true;} else {map[i][j] = 3;return false;}} else { return false;}}}public static boolean setWay2(int[][] map, int i, int j) {if(map[6][5] == 2) { return true;} else {if(map[i][j] == 0) { map[i][j] = 2; if(setWay2(map, i-1, j)) {return true;} else if (setWay2(map, i, j+1)) { return true;} else if (setWay2(map, i+1, j)) { return true;} else if (setWay2(map, i, j-1)){ return true;} else {map[i][j] = 3;return false;}} else { return false;}}}}
2、八皇后问题