【问题标题】:What is the difference between a balanced binary search tree and a binary search tree?平衡二叉搜索树和二叉搜索树有什么区别?
【发布时间】:2015-06-24 13:06:04
【问题描述】:

对不起,如果这是一个非常基本的问题,但我对树木还很陌生,因此,这些天这个疑问困扰着我。

二叉搜索树和平衡二叉搜索树有什么区别?不是每个 BST(二叉搜索树)都已经是 BBST(平衡 BST)了吗?

【问题讨论】:

  • 参见this SO post,了解平衡二叉树的精彩讨论。

标签: tree binary-search-tree


【解决方案1】:

“平衡”是二叉树可能具有的属性。这通常意味着树中的每个节点在其下的每个子树上具有大致相同数量的后代节点。更具体地说,它意味着树的“高度”已被最小化。

对于不是“平衡”的树,可能有一个所有“左”子节点都为空的二叉树,否则它仍然具有“二叉搜索树”的属性。这被称为退化树,因为它在结构上更像一个链表,因此搜索时间为 O(N) 而不是 O(log(N))。

【讨论】:

  • 基本上,用外行的话来说,我可以说平衡树是左右子树的高度最多相差 1 的树吗?而在 BST 中,这不一定是真的?
  • 那是“必要但不充分”。它必须包括“每个子树也是平衡树”
【解决方案2】:

不同之处在于平衡二叉树的高度可能最小

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    • 1970-01-01
    • 2016-06-05
    相关资源
    最近更新 更多