Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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_Algorithm_Tree_Binary Tree - Fatal编程技术网

Java 无需遍历查找二叉树的大小

Java 无需遍历查找二叉树的大小,java,algorithm,tree,binary-tree,Java,Algorithm,Tree,Binary Tree,我正在为一个类做一个赋值,在这个类中,我们得到了一个二叉树,它已经通过pre/post/in-order遍历进行了编号。我们必须编写一个以恒定时间O(1)计算的size方法 据我所知,当你遍历一棵二叉树的时候,它花费了O(n)个时间,因为每个节点都被检查过。很明显,我必须找到这棵树的大小,而不必穿过它 对于post-order,这很容易,因为大小只是根+1的值,但是对于其他两种方法,我不知道如何在不遍历的情况下计算它 作业问题逐字逐句 假设给我们一棵二叉树,其中有前序、后序和按序编号分配给 节点

我正在为一个类做一个赋值,在这个类中,我们得到了一个二叉树,它已经通过pre/post/in-order遍历进行了编号。我们必须编写一个以恒定时间O(1)计算的size方法

据我所知,当你遍历一棵二叉树的时候,它花费了O(n)个时间,因为每个节点都被检查过。很明显,我必须找到这棵树的大小,而不必穿过它

对于post-order,这很容易,因为大小只是根+1的值,但是对于其他两种方法,我不知道如何在不遍历的情况下计算它

作业问题逐字逐句

  • 假设给我们一棵二叉树,其中有前序、后序和按序编号分配给 节点。(在纸上)展示如何使用这些数字回答下列问题 恒定时间: A.给定一个节点u,确定以u为根的子树的大小。 B给定一个节点u,确定u的深度。 C给定两个节点u和w,确定u是否是w的祖先
    您是否考虑过在添加和删除项目时只跟踪大小、递增和递减?这肯定是一个简单的解决方案。但是,我们需要编写基于给定节点U计算的size方法,因此很遗憾,我不能这样做:/Cannot done。请张贴所有相关代码(不包括任何不必要的内容)以及作业的准确措辞。请包括您的后订单解决方案。除非您保持每个节点中每个子树的大小,否则无法完成。我阅读了作业,因为每个节点都有三个数字。如果是这样,您已经演示了如何找到尺寸;其余的也同样微不足道。