2016-11-13 8 views
0

私はlinkdelistのlinkedlistsで作られたデータ構造を持っています。例えばLinkedListsと再帰とのLinkedLists

[ [A,B,C] [D,E,F] [A,B] [E,F] ] 

私の目標は、全体の構造に含まれることはありませんそれらのlinkedlistsを見つけることです。ただし、[A、B、C]と[D、E、F]はそれぞれ[A、B]と[E、F]を含んでいるので決して他人には含まれません。 私はツリーを扱っているので再帰を使う必要があるので、これらの特徴を持つリンクリストを見つけると、私は自分の関数を思い出す必要があります。

私の実装です:

private void treeGen(Node<LinkedList<String>> parent, LinkedList<LinkedList<String>> partitions) { 

    for (int i=0; i<partitions.size();i++) { 
     for(int j=0; i<partitions.size();i++) 
     { 
      //the condition discussed so far 
      if(!partitions.get(i).containsAll(partitions.get(j)) && parent.getData().containsAll(partitions.get(j))) 
      { 
       //create node 
       Node<LinkedList<String>> child = new Node<LinkedList<String>>(); 
       //set value 
       child.setData(partitions.get(i)); 
       //child of parent node 
       parent.addChild(child); 
       //new parent node, recursion 
       treeGen(child, partitions); 
      } 
      else 
      { 
       //do nothing 
      } 
     } 
    } 

私はすべての可能な組み合わせを比較するにもかかわらず、私は木にいくつかのノードを欠場。 リンクされたリストに関連する問題がありますか?

+0

ここに「含む」と正確には何を意味していますか? – kkaosninja

+0

ようこそスタックオーバーフロー!デバッガの使い方を学ぶ必要があるようです。 [補完的なデバッグ手法](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)にご協力ください。その後も問題が残っている場合は、もう少し詳しくお聞かせください。 –

答えて

1

まあ、入れ子になっているのは、iではなくjをインクリメントすると思います。そのようなインデックスに名前を付けることを避けることをお勧めします。本当に混乱しているコード、時にはこの種のエラーが発生する可能性があります。