当我在学校的时候,我们有一个任务是实现一个2-3的树。我这样做了,并构建了以下2-3个树https://github.com/awm086/2-3-tree/blob/master/2_3_tree.cpp。
现在,我正在回顾并尝试更新我的c++知识,我不禁想知道,我如何在真实的示例中使用这种数据结构。我希望能够写一个程序,可以利用这种数据结构。因此,我想我是在请求一个使用树数据结构的真实生活示例(足够简单,我可以实现)?
发布于 2012-10-12 23:33:50
例如,树被用在像std::map这样的关联容器中,因为它们提供了非常快的查找、插入和删除。
发布于 2012-10-12 23:38:31
从2-3棵树的维基百科页面,
2-3树是AA树的等距结构,这意味着它们是等价的数据结构。换句话说,对于每2-3棵树,至少存在一棵具有相同顺序的数据元素的AA树。
和(来自AA树)
是计算机科学中的AA树,是平衡树的一种形式,用于高效地存储和检索有序数据。
最后,
AA树的性能相当于红黑树的性能。虽然AA树比红黑树进行了更多的旋转,但更简单的算法往往更快,所有这些都平衡了导致类似的性能。红黑树在性能上比AA树更一致,但AA树往往更扁平,这导致搜索时间略快。
发布于 2012-10-12 23:37:16
你的意思是为什么使用树-或者为什么使用2-3树?
树允许您在添加新数据时存储一组有序的数据,而无需(大量)重新排序
2-3棵树被切除,这样它们就不会变得不平衡
https://stackoverflow.com/questions/12862387
复制相似问题