私は次のようなフラットリストを持っています。シンプルリストから親/子データ構造を作成する
nodeA
nodeB
nodeC
endnodeC
nodeD
endnodeD
endnodeB
endnodeA
folliwngのようなjavaで親子データ構造を作成する方法はありますか?
A
|
B
/\
C D
私は次のようなフラットリストを持っています。シンプルリストから親/子データ構造を作成する
nodeA
nodeB
nodeC
endnodeC
nodeD
endnodeD
endnodeB
endnodeA
folliwngのようなjavaで親子データ構造を作成する方法はありますか?
A
|
B
/\
C D
これはバイナリツリーですか?結果ノードのようなものであると仮定http://www.java2s.com/Code/Java/Collections-Data-Structure/BinaryTree.htm
質問をより明確に読んでください。新しい子供が産卵されるべき特定の用語があります。これはバイナリツリーのようには見えません。 endNodeXに達するたびに、親にポップバックします。潜在的に各ノードは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;
}
}
お金で! Aaah、私はCのツリー構造を実装する時代に戻ってきます。 –
これを行うには「何か方法はありますか?」と言ってどういう意味ですか?私はあなたのためにこれを行うoff-the-shelf機能があるとは思わない。しかし、これは確かに可能で簡単な再帰的プログラミングです。実際には宿題のように見えます。私は誰もあなたにここで完全な解決策を与えるとは思わない、代わりにいくつかの進歩を遂げ、より具体的な質問をするように努めるべきである。 – emrea
これが宿題である場合は、これをタグ付けすることを検討してください。それは本当にそれのように聞こえる。 –