0

当我在学校的时候,我们有一个任务是实现一个 2-3 树。我这样做并构建了以下 2-3 树https://github.com/awm086/2-3-tree/blob/master/2_3_tree.cpp

现在我回顾并尝试更新我的 C++ 知识,我不禁想知道,我如何在现实生活中的示例中使用这种数据结构。我希望能够编写一个可以利用这种数据结构的程序。所以我想我要的是一个使用树数据结构的现实生活示例(足够简单,我可以实现)?

4

4 回答 4

2

例如,树用于std::map之类的关联容器中,因为它们提供了非常快速的查找、插入和删除。

于 2012-10-12T15:33:50.310 回答
2

从 2-3 树的维基百科页面,

2-3棵树是AA树的等距,这意味着它们是等效的数据结构。换句话说,对于每2-3棵树,至少存在一棵数据元素顺序相同的AA树。

和(来自 AA 树)

计算机科学中的 AA 树是一种平衡树,用于有效地存储和检索有序数据。

最后,

AA树的性能相当于红黑树的性能。虽然 AA 树比红黑树进行更多的旋转,但更简单的算法往往更快,所有这些都可以平衡以产生相似的性能。红黑树的性能比 AA 树更一致,但 AA 树往往更平坦,这导致搜索时间稍快。

于 2012-10-12T15:38:30.883 回答
1

你的意思是为什么使用树 - 或者为什么使用 2-3 树?

树可让您在添加新数据时存储有序的数据集,而无需(大量)重新排序

对 2-3 棵树进行了优化,以免它们变得不平衡

于 2012-10-12T15:37:16.470 回答
0

树数据结构在很多地方都大量使用,您可以执行以下操作。

  • Data base designing

您可以创建自己的数据库来存储基于某个值的数据,假设 BST(二叉搜索树)然后您可以选择越来越小的值,并根据这些值将数据存储在树节点中。

  • Creating file system

这是树木大量使用的区域,因此您可以尝试这些。

于 2012-10-12T15:40:37.220 回答