2010-11-26 20 views
0

私は次のようなフラットリストを持っています。シンプルリストから親/子データ構造を作成する

nodeA   
nodeB   
    nodeC   
    endnodeC 
    nodeD 
    endnodeD 
endnodeB 
endnodeA 

folliwngのようなjavaで親子データ構造を作成する方法はありますか?

A    
    |    
    B    
/\    
C D  
+0

これを行うには「何か方法はありますか?」と言ってどういう意味ですか?私はあなたのためにこれを行うoff-the-shelf機能があるとは思わない。しかし、これは確かに可能で簡単な再帰的プログラミングです。実際には宿題のように見えます。私は誰もあなたにここで完全な解決策を与えるとは思わない、代わりにいくつかの進歩を遂げ、より具体的な質問をするように努めるべきである。 – emrea

+0

これが宿題である場合は、これをタグ付けすることを検討してください。それは本当にそれのように聞こえる。 –

答えて

0

これはバイナリツリーですか?結果ノードのようなものであると仮定http://www.java2s.com/Code/Java/Collections-Data-Structure/BinaryTree.htm

+1

質問をより明確に読んでください。新しい子供が産卵されるべき特定の用語があります。これはバイナリツリーのようには見えません。 endNodeXに達するたびに、親にポップバックします。潜在的に各ノードは3つ以上の子を持つことができます。 –

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; 
    } 
} 
+0

お金で! Aaah、私はCのツリー構造を実装する時代に戻ってきます。 –

関連する問題