Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 二叉树生成的时间复杂度_Java_Time Complexity_Binary Tree - Fatal编程技术网

Java 二叉树生成的时间复杂度

Java 二叉树生成的时间复杂度,java,time-complexity,binary-tree,Java,Time Complexity,Binary Tree,有一种方法可以构建一个二叉树,其中有N个完整的级别和on 每个级别I都有两个节点,其信息部分等于I。根据构建的树的级别数,时间复杂度是多少 private SimpleTreeNode fromNDigitToNode(int x,int k) throws Exception { IndexWrapper iw = new IndexWrapper(); T parentValue = readValue((k-x+1)+"",iw); Simp

有一种方法可以构建一个二叉树,其中有N个完整的级别和on 每个级别I都有两个节点,其信息部分等于I。根据构建的树的级别数,时间复杂度是多少

private SimpleTreeNode fromNDigitToNode(int x,int k) throws Exception {
        IndexWrapper iw = new IndexWrapper();
        T parentValue = readValue((k-x+1)+"",iw);
        SimpleTreeNode parentNode = new SimpleTreeNode(parentValue);
        SimpleTreeNode leftNode = new SimpleTreeNode(parentValue);
        SimpleTreeNode rightNode = new SimpleTreeNode(parentValue);
        if(x<=1)return parentNode;
        int z = --x;
            parentNode.left = fromNDigitToNode(z,k);
            parentNode.right = fromNDigitToNode(z,k);

        return parentNode;
    }

我认为你的代码有缺陷。创建leftNode和rightNode,但不使用它们。此外,parentNode.left和parentNode.right都是使用相同的参数创建的。对吗

我不知道您的IndexWrapper用于什么以及readValue()的作用

最大的问题是:这永远不会停止。例如,如果x<0,则不检查。所以你用x=1来称呼它。然后递归两次,用x=0调用它,然后用x=-1调用它,然后永远重复

所以我要说这是秩序(永远)


我建议您实际运行代码,测试代码,然后计算其复杂性。

您能自己演示一下解决这个问题的方法吗?发布的两个函数根本没有交互作用。对不起。我的错误。代码已编辑,所以,正好有2^N项?你什么时候开始的?
public void fromNDigit(String Ndigit) throws Exception{
        int digit = Integer.parseInt(Ndigit);

        IndexWrapper iw = new IndexWrapper();
        SimpleTreeNode root = fromNDigitToNode(digit,digit);

        this.root = root;
    }
}