2011-01-03 2 views
1

私はこれまでノード(母親、父親、パートナー&の兄弟)に関係を追加できるようにするファミリーツリープログラムを構築しました。これにより、ツリーを構築することができます。少なくとも作成されるリンク。テキストの表現

私の問題は、テキストをテキストで表現する必要があることです。これは非常に困難であることが証明されています。私は、特定のノードの先祖と子孫を表示することを考えましたが、これは難しいことが証明されています。特に、祖先(祖父母以上)を表示するための世代が2世代以上ある場合には困難です。

私はファイルツリー構造を使うことを考えましたが、偉大な祖父母のために表示すると混乱しました。

誰かが見たい場合は、ソースを提供できます。


私は何を意味することは、人々のペアでのファイル構造の開始を使用している: 例えば

おじいちゃん& GRANDMA
--- DAD
------ ME
------ SISTER
---叔母
------ COUSIN
- ---- COUSIN

これは私の父親(私を含めて)に私の祖先を示すためのものです。祖父母に両親がいればどうなるのでしょうか?上記の構造との関係をどのように表しますか?私は偉大な祖父母を見せなければならないだろうが、2つのセットがあるだろう!私のおばあちゃんのためのものと私のおばあちゃんのためのもの。私が何を意味するかを見れば、ルートは2つに分かれています....

私は 'show ancestors'機能を上に2世代しか表示しないように制限しています。つまり、ユーザーは親ノードを選択して祖先を表示することで、ツリーをたどり、祖父母を識別することができますが、面倒で直感的ではありません。

答えて

0

次の方法は、あなたが望むことができる場合があります。これは、タブ付き階層構造のツリーを表示します:

public void printTree(Node root, int tabLevel, PrintStream out){ 
    for(int i =0;i < tabLevel; i++) out.print("\t"); 
    out.println(root) 
    for(Node n: root.getChildren()) 
     printTree(n, tabLevel + 1, out); 
} 

あなたはそうのようにそれを呼び出します。これは、アカウントに家系図の複雑さのすべてを取ることはありません

printTree(rootNode, 0, System.out); 

が、それは始めるのに良い場所を提供するはずです。

+0

多分私はあなたに私の質問を振りかざすのではなく、私はあなたに答えていたはずです。おっとっと!私が言っているのは、論理的には、特定のノードの祖父母をどのように表示するのか混乱していると思います。 – user559142

+0

@user、1つのノードには祖父母だけが存在しません。 1つのノードには親と子のみが存在します。したがって、ノードの祖父母を表示するには、そのノードの親を表示する必要があります。そして、親の親、そして親の親。それは理にかなっていますか? – jjnguy

関連する問題