在樹的最後一級,我必須生成組成原始集合的所有可能的子集。但這些子集不應該有任何共同的元素 原來這裏集合是{A,B,C}集合的分區
附圖說明:
在我的意思是一個成員將是在該子集中 與出下一個成員會出子 由於提前
我寫了這個遞歸代碼由於這種data stucture 這將給樹多子女
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;
}
}
我寫了簡單的main爲我調試我的調試會回答,直到樹的level2的
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)
它會給出一個例外,我知道爲什麼,但我不知道如何解決問題的方法是我應該有節點但這裏的ChList是字符串的類型 由於鏈接我應該調用addchildAt但我不知道如何? 任何想法會如此如此讚賞!
我真的需要幫助!真的真的。
你需要自己嘗試這個 –
請原諒我的無知,但不是'{a} {b}'和'{a,b}'等價嗎?如果是這樣,我有一個工作解決方案,如果沒有,我是一個工作解決方案的一半。 – Serdalis
不,他們不是 – Nickool