Java 集的划分

Java 集的划分,java,arrays,recursion,tree,nodes,Java,Arrays,Recursion,Tree,Nodes,在树的最后一级,我必须生成组成原始集合的所有可能子集。但是这些子集不应该有任何公共元素 这里的原始集合是{a,b,c} 图说明: 我的意思是下一个成员将在子集中 当退出时下一个成员将退出子集 提前谢谢 由于这个原因,我编写了这个递归代码 这将给这棵树带来许多孩子 public class Mymethod { public GenericTreeNode<String> insert(GenericTreeNode<String> root,GenericTree

在树的最后一级,我必须生成组成原始集合的所有可能子集。但是这些子集不应该有任何公共元素 这里的原始集合是{a,b,c}

图说明:

我的意思是下一个成员将在子集中 当退出时下一个成员将退出子集 提前谢谢

由于这个原因,我编写了这个递归代码 这将给这棵树带来许多孩子

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;
    }
    }
公共类Mymethod{
公共GenericTreeNode插入(GenericTreeNode根,GenericTreeNode新节点)
{
int index=root.getNumberOfChildren()-1;
if(root.hasChildren())
while(索引!=-1)
{
插入(root.getChildAt(索引),NewNode);
索引--;
}
root.children.add(NewNode);
ArrayList ChList=新的ArrayList();
add(“{root.getData()+”,“+NewNode+”}”);
add(“{”+root.getData()+“}”+“{”+NewNode+“}”);
root.children=ChList;
返回根;
}
}
我为我的调试编写了简单的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);
        }
公共类主{
公共静态void main(字符串[]args){
GenericTreeNode根=新的GenericTreeNode(“a”);
GenericTreeNode str=新的GenericTreeNode(“b”);
GenericTreeNode str1=新的GenericTreeNode(“c”);
Mymethod m=新的Mymethod();
GenericTreeNode父节点=m.insert(根,str);
GenericTreeNode parent1=m.insert(父级,str1);
}
问题是,在
root.getChildAt(index)
中,它会给出一个异常,我知道为什么,但我不知道如何解决这个问题:我应该有节点,但这里的ChList是字符串的类型 由于链接,我应该给addchildAt打电话,但我不知道怎么打? 任何想法都会被非常感谢


我真的需要帮助!真的。

你需要自己尝试一下原谅我的无知,但是
{a}{b}
{a,b}
equivalent?如果是这样,我有一个有效的解决方案,如果不是的话,我已经有了一个有效的解决方案。你能告诉我你的解决方案吗?也许我可以改变它我写了排列,我也有一些数字,它们将被划分为5和2,3和1,1,2,1等等,我混合了它们,我有分区,但我希望这种方法不仅仅是整体,我真的很困惑是的hard@Mitch小麦我试了两天,在这上面工作了14个小时,但也许这太难了,也许我太傻了,我做不到