2010-11-26 86 views
0

我有一个像下面这样的平面列表。从简单列表创建父/子数据结构

nodeA   
nodeB   
    nodeC   
    endnodeC 
    nodeD 
    endnodeD 
endnodeB 
endnodeA 

有没有什么办法在java中像folliwng那样创建父子数据结构。

A    
    |    
    B    
/\    
C D  
+0

你说什么“有什么办法”来做到这一点是什么意思?我不认为有一个现成的功能可以为你做到这一点。但是这肯定是可能的,而且是简单的递归编程。它实际上看起来像一个家庭作业问题。我不认为有人会在这里给你完整的解决方案,而应该尝试取得一些进展并提出更具体的问题。 – emrea 2010-11-26 04:26:36

+0

如果是这样,请考虑将其标记为家庭作业。它听起来很像。 – 2010-11-26 05:26:08

回答

3

假设结果节点是一样的东西:

class Node { 
    Node parent; 
    // other data 
} 

伪代码,从你的单位名单产生的(假设flatNodes列表是正确的结构和对):

Node currentNode; 
foreach (n in flatNodes) { 
    if (n is endnode) { 
    currentNode = currentNode.parent 
    } else { 
    Node newNode = createNodeBaseOnFlatNode(n); 
    newNode.parent=currentNode; 
    currentNode = newNode; 
    } 
}