日期:2014-05-20  浏览次数:20774 次

求救: 如何根据有规律的条件生成树
刚才的不能正常显示,   重新发次
场景:
  有一组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”的长度,再进行计算,不好理解。可以写个递归,效率不太清楚。