2016-11-13 3 views
0

У меня есть структура данных, составленная из связанных списков linkdelist.LinkedLists LinkedLists с рекурсией

Например:

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

Моя цель состоит в том, чтобы найти те linkedlists, которые никогда не содержатся во всей структуре. Для istance [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

Ну, я полагаю, что вложенное значение должно увеличивать j, а не i. Я предлагаю вам избегать названий таких индексов, это может привести к действительно запутанному коду и иногда к таким ошибкам.

Смежные вопросы