二叉搜索树,2-3树和B树的用法,优缺点

时间:2014-03-02 07:57:36

标签: data-structures tree binary-search-tree b-tree 2-3-4-tree

我正在审查我的数据结构类中的材料,我对这三种树的使用感到困惑。那么我们应该更好地使用二叉搜索树,2-3树和B树的情况是什么?什么是利弊?

非常感谢你!我对数据结构的东西很陌生......

1 个答案:

答案 0 :(得分:2)

这三个结构都是有序词典的实现 - 它们维护一个集合,同时有效地支持插入,删除,查找,后继和前任查询。

二进制搜索树和2-3棵树与B树不同,BST和2-3棵树(通常)是主存储器数据结构,而B树是(通常)外部存储器数据结构。具体地说,B树被设计成存储在磁盘上,其中读取或写入磁盘页面的成本显着高于执行简单计算的成本。如果您计划存储大量无法容纳在主存储器中的数据,那么B树是数据结构的绝佳选择。另一方面,在主存储器中,具有非常大的分支因子的B树将比BST或2-3树慢,因为每个B树插入或删除可能需要大量的指针重新分配。对于适合主存储器的数据集,2-3树和BST通常是更好的选择(尽管有一些研究表明,由于缓存效应,低阶B树在主存储器中的性能优于BST。)

对于BST和2-3棵树:"二元搜索树"不是单一的数据结构。有纯粹的BST没有平衡,红/黑树,AVL树,AA树,splay树,treaps,替罪羊树,重量平衡树,RAVL树等等。这些数据结构中的每一个尝试使用一些规则来平衡BST这样查找,插入和删除都很快。 2-3树是BST的变体,允许每个节点有多个密钥,以便为维持平衡提供简单的规则。问题通常不会是"什么时候BST比2-3树更好,反之亦然" " 2-3树比其他平衡BST有什么优势,反之亦然,"这是你必须通过剖析找出的东西。

希望这有帮助!