【问题标题】:What kind of decisions to consider while choosing the type of a self-balanced BST?在选择自平衡 BST 的类型时要考虑什么样的决定?
【发布时间】:2020-08-05 11:57:42
【问题描述】:

例如,我知道 2-3 树和红黑树的概念和思想,但你能告诉我其中一种比另一种更好的情况吗?我应该问自己什么问题?

由于问题不只是关于 2-3 树和红黑树,请随意举出其他自平衡树的示例,我将研究它们。只是想从一般的角度提出问题,以便在谷歌上搜索到其他想知道类似或相同问题的人。

【问题讨论】:

    标签: binary-tree binary-search-tree red-black-tree 2-3-tree


    【解决方案1】:

    主要考虑因素是插入/擦除次数与查找次数的对比。通常选择归结为红黑或 AVL。

    AVL 以更复杂的平衡操作为代价来维持更严格的平衡。 AVL 还需要每个节点更多的信息,但通常可以实现 RB 和 AVL,以便将所需信息隐藏在已经存在的成员中(即在对齐地址分配的缓冲区的低位中)。

    请注意,如果您的树不会很大,那么您选择哪种树可能并不重要(甚至是一棵树,如果您只有十几个项目,列表甚至数组可能都可以) .如果你的树不会有数万棵,即使是非常粗略的平衡也可能“足够好”。

    如果您打算在某个较大的节点中处理具有多个值的树(如在 2-3 树中,则使用完整的 b-tree 并使用更大的因子可能更有意义。我'在通往更有用的结构的过程中只遇到过 2-3 和 2-3-4 树。

    【讨论】:

    • 感谢您的回答!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 2011-02-14
    • 2021-10-28
    相关资源
    最近更新 更多