遍历溢出的二叉树

时间:2012-11-21 00:32:48

标签: binary-tree

给定一个非常大的二叉树(即有数百万个节点),如何处理确定树中节点的数量?换句话说,给定该树的根节点到函数,该函数应该返回树中的节点数。

或者说如果树有很多节点,你如何检查二进制树是否是BST?

2 个答案:

答案 0 :(得分:1)

遍历所有节点并检查您需要的任何条件/指标。没有关于树的额外知识,你就别无他法。

您可以在创建树时强制执行特定条件(即必须进行平衡/排序/无论如何),或者在创建时收集有关树的信息(即存储并不断更新子项数)。

答案 1 :(得分:0)

要检查它是否为VALID bst,您必须先访问每个节点深度,并确保每个节点都小于之前的节点。

如果你想评估平衡BST需要多长时间,你可以通过计算一条腿的长度来快速估算大小,我相信总大小将在2 ^(n-1)之间。 2 ^ n-1包含