Nemo

Nemo 关注TA

路漫漫其修远兮,吾将上下而求索。

Nemo

Nemo

关注TA

路漫漫其修远兮,吾将上下而求索。

  •  普罗旺斯
  • 负责帅就完事了
  • 写了1,493,291字

该文章投稿至Nemo社区   Java  板块 复制链接


二叉树典型:递归打印某个文件夹下的所有文件以及文件夹

发布于 2018/01/11 17:32 2,187浏览 0回复 1,311

二叉树的以前还在学校的时候开始接触的了,不过一直做的工作都跟数据结构/算法没多大的关系,所以一直没能应用。

最近在研究一些索引原理方面的内容,其中接触到不少数据结构的内容。这里先贴一下这个二叉树搜索的实现:


/**
 * Created by Nemo on 2018/1/11.
 */
public class BinaryTreeTest {

    private String basePath = "E:/";

    @Test
    public void search(){
        File file = new File(basePath);
        if(!file.exists()){
            Assert.fail("找不到指定的目录");
        }
        //开始执行搜索
        doSearch(file);
    }

    /**
     * 搜索函数
     * 罗列当前文件对象下的孩子文件,判断每个文件
     * 如果是目录那么则继续调用此函数执行递归搜索该目录
     * 如果是文件,那么则直接打印出来即可
     * @param file
     */
    private void doSearch(File file){
        if(file.isDirectory()){
            File[] files = file.listFiles();
            if(files!=null) {
                for (File f : files) {
                    if(f.isDirectory()){
                        doSearch(f);
                    }else{
                        outPrint(f);
                    }
                }
            }
        }
        outPrint(file);
    }

    /**
     * 输出方法,打印内容到控制台
     * @param file
     */
    private void outPrint(File file){
        if(file.isDirectory()){
            System.out.println("目录:"+file.getPath());
        }else{
            System.out.println("文件:"+file.getPath());
        }
    }

}


二叉树的模型可以这么表示,随便在百度百科上找的图:

b999a9014c086e06f719387b01087bf40ad1cb49


点赞(0)
点了个评