[数据结构与算法]第6章 递归
个人博客文章地址 文章目录 6.1 递归需要遵守的重要规则 6.2 递归-迷宫问题 6.3 递归-八皇后问题(回溯算法) 6.1 递归需要遵守的重要规则 执行一个方法时,就创建一个新的受保护的独立空间(栈空间) 方法的局部变量是独立的,不会相互影响, 比如n变量 如果方法中使用的是引用类型变量(比如数组),就会共享该引用类型的数据. 递归必须向退出递归的条件逼近,否则就是无限递归,出现StackOverflowError,死龟了:) 当一个方法执行完毕,或者遇到return,就会返回,遵守谁调用,就将结果返回给谁,同时当方法执行完毕或者返回时,该方法也就执行完毕。 6.2 递归-迷宫问题 说明: 小球得到的路径,和程序员设置的找路策略有关即:找路的上下左右的顺序相关 再得到小球路径时,可以先使用(下右上左),再改成(上右下左),看看路径是不是有变化 测试回溯现象 思考: 如何求出最短路径? 代码实现: public class MiGong { public static void main ( String [ ] args ) { // 先创建一个二维数组,模拟迷宫 // 地图 int [ ] [ ] map = new int [ 8 ] [ 7 ] ; // 使用1 表示墙 // 上下全部置为1 for ( int i = 0 ; i < 7 ; i ++ ) { map