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

标签 java

我有一个如下所示的平面列表。

nodeA           
 nodeB           
  nodeC           
  endnodeC   
  nodeD
  endnodeD
 endnodeB
endnodeA 

有没有办法像下面这样在java中创建父子数据结构。

   A               
   |              
   B             
  / \            
 C   D    

最佳答案

假设结果节点类似于:

class Node {
    Node parent;
    // other data
}

从平面列表生成的伪代码是(假设平面节点列表具有正确的结构和对):

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

关于java - 从简单列表创建父/子数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4282464/

相关文章:

java - Android中JVM的堆大小

java - 如何在更改全屏/底部导航时使用导航组件 navhostfragment

java - 加载另一个 JFrame 类的进度条

java - ListView 切换开关仅适用于最后一行

java - 将 RecyclerView 代码直接从 Activity 移动到 Fragment,这些错误是什么意思?

java - Spring RestTemplate POST请求以及URL编码数据

Java - AsyncHttpClient - 中止正在进行的异步调用

java - 从 Maven 运行 ant junit 目标

java - 使用java.util.Timer监控java中的2个线程,它们基于计时相互依赖

java - Akka ActorSystem 在 Java 中永远不会终止