递归

118 阅读1分钟

1:递归是一种常见的算法思路,例如深度优先搜索

2:递归的基本思想是“自己调自己”。

递归结构包括两个部分

【】定义递归头:解决:什么时候不调用自身方法。如果没有头,将陷入死循环,也就是递归的结束条件。

【】递归体:解决:什么时候需要调用个自身方法。

package com.it.baizhan;

import java.io.File;

//打印目录树、结合递归
public class PrintFileTree {
    public static void main(String[] args) {
        File f = new File(System.getProperty("user.dir"));//相对路径,默认放到user.dir目录下
        printFile(f,0);//打印目录

    }
    static void printFile(File file,int level){//这里不能将printfile方法和下面的if语句和for语句对调过来使用,否则会导致编译错误,
        for (int i=0;i<level;i++){
            System.out.print("-");
        }
        //输出文件名
        System.out.println(file.getName());
        if (file.isDirectory()){
            File[] files = file.listFiles();//列出他的所有子文件,子目录
            for (File temp:files){//temp在这里是当前处理的子文件或子目录
                printFile(temp,level+1);
            }
        }



    }
}