我有一个像下面这样的平面列表。
nodeA
nodeB
nodeC
endnodeC
nodeD
endnodeD
endnodeB
endnodeA
有没有办法在java中创建父子数据结构,如folliwng。
A
|
B
/ \
C D
答案 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)