求救: 如何根据有规律的条件生成树
刚才的不能正常显示, 重新发次
场景:
有一组2纬数据,一个代表树节点的名字, 一个代表树节点出现的位置: 如下
site name
1 name1
11 name2
111 name3
112 name4
113 name5
12 name6
121 name7
122 name8
13 name9
按照site来计算树的出现位置: 这上面的数据对应如下的树:(就不用图片了, 使用文字简单按照缩进排列)
.name1
.......name2
..............name3
..............name4
..............name5
.......name6
..............name7
..............name8
.......name9
树的深度最多5层, 在数据量比较大的情况下 使用甚么算法比较高效呢?
例如有个类, 保存了上面的2个属性,和一个集合
class Some{
public String site;
public String name;
public List <Some> someList;
}
如何才可以把上面的数据结构用上面的类来做成一个树呢.
谢谢.
------解决方案--------------------自底向上构造树.构造一个集合A.开始时A=所有的节点.
从A中选出一个site最长的节点.如上面最长的是, 111 ,112,113,121,122等,长度为3.
将这个节点加入其夫节点.然后,从A中删除.当|A| = 1时构造完成.
------解决方案--------------------public class Node{
private String id;
private String parentId;
private String value;
public Node(String id,String parentId,String value){
this.id = id;
...
}
//getter and setter method
}
你写的那个树要先判断“site”的长度,再进行计算,不好理解。可以写个递归,效率不太清楚。