从简单列表创建父/子数据结构

时间:2010-11-26 04:06:00

标签: java

我有一个像下面这样的平面列表。

nodeA           
 nodeB           
  nodeC           
  endnodeC   
  nodeD
  endnodeD
 endnodeB
endnodeA 

有没有办法在java中创建父子数据结构,如folliwng。

   A               
   |              
   B             
  / \            
 C   D    

2 个答案:

答案 0 :(得分: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;
  }
}

答案 1 :(得分:0)

相关问题