二叉树的以前还在学校的时候开始接触的了,不过一直做的工作都跟数据结构/算法没多大的关系,所以一直没能应用。
最近在研究一些索引原理方面的内容,其中接触到不少数据结构的内容。这里先贴一下这个二叉树搜索的实现:
/**
* 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());
}
}
}
二叉树的模型可以这么表示,随便在百度百科上找的图: