2011-12-07 54 views
1

在樹的最後一級,我必須生成組成原始集合的所有可能的子集。但這些子集不應該有任何共同的元素enter image description here 原來這裏集合是{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但我不知道如何? 任何想法會如此如此讚賞!

我真的需要幫助!真的真的。

+0

你需要自己嘗試這個 –

+0

請原諒我的無知,但不是'{a} {b}'和'{a,b}'等價嗎?如果是這樣,我有一個工作解決方案,如果沒有,我是一個工作解決方案的一半。 – Serdalis

+0

不,他們不是 – Nickool

回答