用java实现树的遍历 不是二叉树

来源:百度知道 编辑:UC知道 时间:2024/05/21 11:38:44
使用java语言 实现树的遍历 不是二叉树 谢谢各位!

import java.io.*;
public class Test{
public static void main(String[] args){
File f=new File("f:/");
tree(f,0);
}

private static void tree(File f,int lev){
String ss="-";
for(int j=0;j<lev;j++){
ss+="----";
}
File[] childs=f.listFiles();
for(int i=0;i<childs.length;i++){
System.out.println(ss+childs[i].getName());
//System.out.println("ss");
if(childs[i].isDirectory()){
tree(childs[i],lev+1);
System.out.print("+");
}
}
}

}

不写代码 只给思路 :广度优先遍历
1。建一个队列(先进先出),把树的根节点压入队列
2。从队列中弹出一个节点(第一次弹出的就是根节点),把该节点的所有子节点压入队列,如果没有子节点,说明已经到达叶子节点了
3。重复第二步,直到队列为空,说明所有的叶子节点都已经经过了队列,也就完成了遍历