9 个解决方案
#1
无限循环?
那就一层一层的读,按需读取。
那就一层一层的读,按需读取。
#2
说是无限循环,只要能读取很多层就可以了。我想的是用递归算法 不过不怎么会,求源码
#3
树结构无限循环,不知道说的是什么意思,是这棵树在一直动态的增加元素吗?如果是的话用中序遍历应该可以
#4
无限?
这个真的是无限吧
只要不会有死循环,用递归 可以的
这个真的是无限吧
只要不会有死循环,用递归 可以的
#5
//比如结构体为
Class Tree(){
String name;
parent Tree;
List<Tree> childs;
}
//读取的时候一层层的读:
//第一层就是Tree:
List<Tree> childs=Tree.getChilds();//他的parent一定为空,因为是第一层
//递归方法
void readTree(List<Tree> childs){
for(Tree t:childs){
if(t.childs!=null){
readTree(t.getChilds);
}else{
System.out.println("该层的名字为"+t.getName());
}
}
}
//以上是递归设计的示意代码,直接在这里写的,楼主按照这个设计测试一下肯定是没有问题的!
#6
怎么会是无限啊
是不是级别比较多啊,像省、市等等吧
是不是级别比较多啊,像省、市等等吧
#7
你说的是循环的数吧
用一个hashset记录已经访问过的节点,如果访问过就不在访问,用递归算法实现
用一个hashset记录已经访问过的节点,如果访问过就不在访问,用递归算法实现
#8
向指定盘符容器内填充文件,在硬盘中递归,读取所有文件,不过很慢
public int setOneDiskAllList(DefaultMutableTreeNode node,String path,int ii){//向指定盘符容器内填充文件
String [] b = nextList(path);//得到本路径下列表
if(b==null) return 0;
for(int i = 0 ;i<=b.length-1;i++){
String aPath=path;//临时存储
path = path+"\\"+b[i]; //得到b[i]的具体地址
DefaultMutableTreeNode node2 = new DefaultMutableTreeNode(b[i]);//创建新节点
//System.out.println(ii++);
node.add(node2);//向树内增加节点
// System.out.println(i);
System.out.println(path);
setOneDiskAllList(node2,path,ii);//递归
path=aPath;
}
return 0;
}
public String[] nextList(String a){//通过路径知道本路径下文件列表
File b = new File(a);
String[] c = b.list();
return c;
}
public int setOneDiskAllList(DefaultMutableTreeNode node,String path,int ii){//向指定盘符容器内填充文件
String [] b = nextList(path);//得到本路径下列表
if(b==null) return 0;
for(int i = 0 ;i<=b.length-1;i++){
String aPath=path;//临时存储
path = path+"\\"+b[i]; //得到b[i]的具体地址
DefaultMutableTreeNode node2 = new DefaultMutableTreeNode(b[i]);//创建新节点
//System.out.println(ii++);
node.add(node2);//向树内增加节点
// System.out.println(i);
System.out.println(path);
setOneDiskAllList(node2,path,ii);//递归
path=aPath;
}
return 0;
}
public String[] nextList(String a){//通过路径知道本路径下文件列表
File b = new File(a);
String[] c = b.list();
return c;
}
#9
什么是循环?什么是无限循环?
图才有循环结构,树怎么会循环?
如果你说是树的层次比较多,那也是有一定的深度的树,不可能无限深度。
图才有循环结构,树怎么会循环?
如果你说是树的层次比较多,那也是有一定的深度的树,不可能无限深度。
//比如结构体为
Class TreeNode(){
String name;
parent TreeNode;
List<TreeNode> childs;
}
//读取的时候一层层的读:
//递归方法,先根遍历,我假设TreeNode的childes,name都可以直接访问,如果不能直接访问,改为相
//应的geter.
void preorder(TreeNode root){
if(root!=null){
//这里对root结点做相应的操作,比如System.out.println(root.name);
for(TreeNode child:root.childs){
preoder(child);
}
//如果是在这里对root做相应的操作是后根遍历。
}
}
#1
无限循环?
那就一层一层的读,按需读取。
那就一层一层的读,按需读取。
#2
说是无限循环,只要能读取很多层就可以了。我想的是用递归算法 不过不怎么会,求源码
#3
树结构无限循环,不知道说的是什么意思,是这棵树在一直动态的增加元素吗?如果是的话用中序遍历应该可以
#4
无限?
这个真的是无限吧
只要不会有死循环,用递归 可以的
这个真的是无限吧
只要不会有死循环,用递归 可以的
#5
//比如结构体为
Class Tree(){
String name;
parent Tree;
List<Tree> childs;
}
//读取的时候一层层的读:
//第一层就是Tree:
List<Tree> childs=Tree.getChilds();//他的parent一定为空,因为是第一层
//递归方法
void readTree(List<Tree> childs){
for(Tree t:childs){
if(t.childs!=null){
readTree(t.getChilds);
}else{
System.out.println("该层的名字为"+t.getName());
}
}
}
//以上是递归设计的示意代码,直接在这里写的,楼主按照这个设计测试一下肯定是没有问题的!
#6
怎么会是无限啊
是不是级别比较多啊,像省、市等等吧
是不是级别比较多啊,像省、市等等吧
#7
你说的是循环的数吧
用一个hashset记录已经访问过的节点,如果访问过就不在访问,用递归算法实现
用一个hashset记录已经访问过的节点,如果访问过就不在访问,用递归算法实现
#8
向指定盘符容器内填充文件,在硬盘中递归,读取所有文件,不过很慢
public int setOneDiskAllList(DefaultMutableTreeNode node,String path,int ii){//向指定盘符容器内填充文件
String [] b = nextList(path);//得到本路径下列表
if(b==null) return 0;
for(int i = 0 ;i<=b.length-1;i++){
String aPath=path;//临时存储
path = path+"\\"+b[i]; //得到b[i]的具体地址
DefaultMutableTreeNode node2 = new DefaultMutableTreeNode(b[i]);//创建新节点
//System.out.println(ii++);
node.add(node2);//向树内增加节点
// System.out.println(i);
System.out.println(path);
setOneDiskAllList(node2,path,ii);//递归
path=aPath;
}
return 0;
}
public String[] nextList(String a){//通过路径知道本路径下文件列表
File b = new File(a);
String[] c = b.list();
return c;
}
public int setOneDiskAllList(DefaultMutableTreeNode node,String path,int ii){//向指定盘符容器内填充文件
String [] b = nextList(path);//得到本路径下列表
if(b==null) return 0;
for(int i = 0 ;i<=b.length-1;i++){
String aPath=path;//临时存储
path = path+"\\"+b[i]; //得到b[i]的具体地址
DefaultMutableTreeNode node2 = new DefaultMutableTreeNode(b[i]);//创建新节点
//System.out.println(ii++);
node.add(node2);//向树内增加节点
// System.out.println(i);
System.out.println(path);
setOneDiskAllList(node2,path,ii);//递归
path=aPath;
}
return 0;
}
public String[] nextList(String a){//通过路径知道本路径下文件列表
File b = new File(a);
String[] c = b.list();
return c;
}
#9
什么是循环?什么是无限循环?
图才有循环结构,树怎么会循环?
如果你说是树的层次比较多,那也是有一定的深度的树,不可能无限深度。
图才有循环结构,树怎么会循环?
如果你说是树的层次比较多,那也是有一定的深度的树,不可能无限深度。
//比如结构体为
Class TreeNode(){
String name;
parent TreeNode;
List<TreeNode> childs;
}
//读取的时候一层层的读:
//递归方法,先根遍历,我假设TreeNode的childes,name都可以直接访问,如果不能直接访问,改为相
//应的geter.
void preorder(TreeNode root){
if(root!=null){
//这里对root结点做相应的操作,比如System.out.println(root.name);
for(TreeNode child:root.childs){
preoder(child);
}
//如果是在这里对root做相应的操作是后根遍历。
}
}