数据结构——递归

递归

一:递归的概念

简单来说,递归就是方法自己调用自己,每次调用时候传入的参数是不一样

二:代码

代码示例:

package cn.littleworm;

public class Test {
    public static void main(String[] args) {
        int n = 5;
        test1(n);
    }

    public static void test1(int n){
        if (n>2){
            test1(n-1);
        }
        System.out.println(n);
    }
}

结果:
递归结果展示
以上图片中为递归结果,从上代码中可以看出,n初始值为5,调用test方法,判断条件n大于2,所以进入if体内,进行自调用,只不过这时,传入test的参数就是n-1,为4了,但需要注意的是,当执行参数为4的test方法时,还在if语句体内,没有出n=5的条件语句体。以下同理。当n等于2的时候,判断条件不成,执行下面的打印操作,打印为2,然后在打印3…到5。下面使用图解的方式来进行演示。

三:图解演示

递归的调用机制

四:使用递归时需要注意的要求

  1. 执行一个方法时,就是在创建一个新的受保护的独立空间(栈空间)
  2. 方法的局部变量是独立的,不会相互影响
  3. 如果方法中使用的是引用类型,如数组,就会共享该引用类型的数据
  4. 递归必须向推出递归 的条件逼近。否则就会无限递归,造成栈溢出的错误
  5. 当一个方法执行完毕时,或者遇到return,就会返回,并且遵守谁调用就将结果返回给谁,同时当发执行完毕之后,或者返回时,该方法也就执行完毕了。
发布了24 篇原创文章 · 获赞 5 · 访问量 2070

猜你喜欢

转载自blog.csdn.net/weixin_43288447/article/details/104032305