Skip to content

递归的概念、形式与应用场景分析

Published:  at  08:59 PM

递归(Recursion)

一、递归概念

递归 指的是:
一个方法在其方法体内部直接或间接地调用自身

递归常用于解决:


二、递归的形式

1. 直接递归

方法在自身的方法体中调用自己。

void f() {
    f();
}

2. 间接递归

多个方法之间形成调用闭环。

void a() {
    b();
}

void b() {
    a();
}

三、递归的三要素(核心)

正确的递归程序 必须同时满足以下三个条件

1. 终止条件(出口)


2. 递归公式(递归关系)


3. 递归方向


四、递归的执行特点


五、递归搜索文件示例(Java)

1. 需求说明

递归遍历指定目录:


2. 示例代码

package FileDemo;

import java.io.File;

public class FileDemo1 {

    public void findFile(File f) {
        if (f.isFile()) {
            System.out.println(f.getName());
        } else {
            System.out.println(
                "文件夹----------------------" 
                + f.getName() 
                + "----------------------文件夹"
            );
            File[] files = f.listFiles();
            if (files != null) {
                for (File f1 : files) {
                    findFile(f1);
                }
            }
        }
    }

    public static void main(String[] args) {
        File f1 = new File("C:\\Users\\yarrow\\Desktop\\Python");
        FileDemo1 fd = new FileDemo1();
        fd.findFile(f1);
    }
}

3. 代码分析

额外说明:


六、递归的优缺点

优点

缺点


七、递归与循环的取舍


八、小结


Suggest Changes

Previous Post
字符集与I/O流基础与应用指南
Next Post
Java File类详解及路径操作方法