【问题标题】:Definition of balanced binary search tree平衡二叉搜索树的定义
【发布时间】:2013-02-01 03:47:49
【问题描述】:

所以,我一直在研究平衡二叉搜索树。

我用谷歌搜索过,这是我发现的:

每个节点的两个子树的深度相差 1 或更小的二叉树(来自维基百科)

我们不能将平衡二叉树定义为高度不超过 ceil(log(n+1) / log 2) 的树吗?

从这个答案Is Binary Search tree balanced? 看来,提问者似乎已经问了很多同样的事情,但是接受的答案通过给出斐波那契树的例子来拒绝这个想法。斐波那契树不是平衡树吗?我认为回答者可能对 AVL 树中平衡树的定义感到困惑,据我了解,其中允许某些不平衡树

【问题讨论】:

  • BST 的最佳情况是 log(n),最坏情况是 n。平衡 BST 的想法就像您所说的每个节点的两个子树的深度相差 1 或更小。然而 AVL 树或红黑树是自平衡 BST 的实现,根据算法,它们不会实现 log(n) 的完美平衡树,而是按照 nlog(n) 的顺序,这要好得多比 n.
  • 你确定它的 nlogn(n) 吗?它应该是 clog(n) 对吗?因为 n 实际上比 nlog(n) 好
  • 啊,是的,它应该是 clog(n)

标签: data-structures tree binary-tree


【解决方案1】:

除非我的计算是错误的,否则这个定义是行不通的。例如,如果你取一棵高度为 6 的完整二叉树,它有 63 个节点。如果删除底部的两个兄弟姐妹及其父节点,则有 60 个节点。这棵树不平衡,但它的高度仍然等于 ceil(log(n+1) / log 2)。

【讨论】:

  • 哦,现在我明白为什么它不起作用了。该公式仅表示具有 n 个节点的二叉树可以与最大高度 h 平衡,但它没有说明树的特定结构是否平衡
猜你喜欢
  • 1970-01-01
  • 2013-12-18
  • 1970-01-01
  • 2012-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多