我有一个像下面这样的平面列表。从简单列表创建父/子数据结构
nodeA
nodeB
nodeC
endnodeC
nodeD
endnodeD
endnodeB
endnodeA
有没有什么办法在java中像folliwng那样创建父子数据结构。
A
|
B
/\
C D
我有一个像下面这样的平面列表。从简单列表创建父/子数据结构
nodeA
nodeB
nodeC
endnodeC
nodeD
endnodeD
endnodeB
endnodeA
有没有什么办法在java中像folliwng那样创建父子数据结构。
A
|
B
/\
C D
你应该更清楚地阅读这个问题。有一些具体的条款应该引发一个新的孩子。这看起来不像二叉树。每次到达endNodeX时,都会弹回父级。可能每个节点可能有两个以上的孩子。 – 2010-11-26 05:23:48
假设结果节点是一样的东西:
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;
}
}
你说什么“有什么办法”来做到这一点是什么意思?我不认为有一个现成的功能可以为你做到这一点。但是这肯定是可能的,而且是简单的递归编程。它实际上看起来像一个家庭作业问题。我不认为有人会在这里给你完整的解决方案,而应该尝试取得一些进展并提出更具体的问题。 – emrea 2010-11-26 04:26:36
如果是这样,请考虑将其标记为家庭作业。它听起来很像。 – 2010-11-26 05:26:08