【发布时间】:2020-08-05 11:57:42
【问题描述】:
例如,我知道 2-3 树和红黑树的概念和思想,但你能告诉我其中一种比另一种更好的情况吗?我应该问自己什么问题?
由于问题不只是关于 2-3 树和红黑树,请随意举出其他自平衡树的示例,我将研究它们。只是想从一般的角度提出问题,以便在谷歌上搜索到其他想知道类似或相同问题的人。
【问题讨论】:
标签: binary-tree binary-search-tree red-black-tree 2-3-tree
例如,我知道 2-3 树和红黑树的概念和思想,但你能告诉我其中一种比另一种更好的情况吗?我应该问自己什么问题?
由于问题不只是关于 2-3 树和红黑树,请随意举出其他自平衡树的示例,我将研究它们。只是想从一般的角度提出问题,以便在谷歌上搜索到其他想知道类似或相同问题的人。
【问题讨论】:
标签: binary-tree binary-search-tree red-black-tree 2-3-tree
主要考虑因素是插入/擦除次数与查找次数的对比。通常选择归结为红黑或 AVL。
AVL 以更复杂的平衡操作为代价来维持更严格的平衡。 AVL 还需要每个节点更多的信息,但通常可以实现 RB 和 AVL,以便将所需信息隐藏在已经存在的成员中(即在对齐地址分配的缓冲区的低位中)。
请注意,如果您的树不会很大,那么您选择哪种树可能并不重要(甚至是一棵树,如果您只有十几个项目,列表甚至数组可能都可以) .如果你的树不会有数万棵,即使是非常粗略的平衡也可能“足够好”。
如果您打算在某个较大的节点中处理具有多个值的树(如在 2-3 树中,则使用完整的 b-tree 并使用更大的因子可能更有意义。我'在通往更有用的结构的过程中只遇到过 2-3 和 2-3-4 树。
【讨论】: