gpt4 book ai didi

java - 二叉搜索树是平衡的吗?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:51:30 26 4
gpt4 key购买 nike

这个已经讨论过了here ,但我在下面有一个实现(在线程中从未讨论过),

public boolean isBalanced(BSTNode node) {
if(maxHeight() > (int)(Math.log(size())/Math.log(2)) + 1)
return false;
else
return true;
}

其中 maxHeight() 返回树的最大高度。基本上我是在检查 maxHeight > log(n),其中 n 是树中元素的数量。这是正确的解决方案吗?

最佳答案

这个解决方案是不正确的。如果平衡树的高度为 O(lg(n)),那么它(高度)需要小于 c*lg(n) - 因为一些常数 c。您的解决方案假定此常数为 1。

请注意,只有一个 complete tree高度 lg(n) 正好。

Fibonacci tree 为例,一棵平衡树(实际上是 AVL tree 的最坏情况)。但是 - 它的高度大于 lgn (~1.44*lg(n)),并且建议的算法将返回不平衡的斐波那契树。

关于java - 二叉搜索树是平衡的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12087880/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com