на последнем уровне дерева я должен сгенерировать все возможные подмножества, которые составляют исходный набор.но эти подмножества не должны иметь общих элементов
здесь исходный набор {a, b, c}
описание рисунка:
с в я имел в виду следующий членбудет в подмножестве с out следующий член будет вне подмножества Спасибо заранее
Я написал этот рекурсивный код Из-за этой структуры данных , которая даст дерево смного детей
public class Mymethod {
public GenericTreeNode<String> insert(GenericTreeNode<String> root,GenericTreeNode<String> NewNode)
{
int index=root.getNumberOfChildren()-1;
if(root.hasChildren())
while(index!=-1)
{
insert(root.getChildAt(index),NewNode);
index--;
}
root.children.add(NewNode);
ArrayList ChList = new ArrayList();
ChList.add("{"+root.getData()+","+NewNode+"}");
ChList.add("{"+root.getData()+"}"+"{"+NewNode+"}");
root.children=ChList;
return root;
}
}
Я написал Simple Main для своей отладки, моя отладка будет отвечать до уровня дерева 2
public class Main {
public static void main(String[] args) {
GenericTreeNode<String> root=new GenericTreeNode<String>("a");
GenericTreeNode<String> str=new GenericTreeNode<String>("b");
GenericTreeNode<String> str1=new GenericTreeNode<String>("c");
Mymethod m=new Mymethod();
GenericTreeNode<String> parent=m.insert(root, str);
GenericTreeNode<String> parent1=m.insert(parent, str1);
}
Проблема в том, что в root.getChildAt(index)
это даст исключение, которое я знаюпочему, но я не знаю, как решить проблему, это то, что у меня должны быть Nodes, но ChList здесь является типом String. Из-за ссылки я должен вызывать addchildAt, но я не знаю, как?любая идея была бы так и так ценится!
Мне действительно нужна помощь!действительно очень.