C++ b-tree merge
C++ b-tree merge
作为示例,我有以下b-tree模型,每个节点包含标记/值对。树表示优先级(或优先级),根是最高的,到叶是最低的(但这是特定于应用程序的)。我想合并一个新的树部分到父,与新的部分包含可能共同的标记/值对一直到节点上面的叶节点(一个完全重复的新树部分将不会被合并)。例如
现有树(标签,值)对指示:
A,0
,----------,-------------,
B,1 B,2 B,3
,-------------,
C,1 C,2
新树合并:
A,0
|
B,3
,-----------,
C,1 C,2
最终合并树:
A,0
,----------,-----------------,
B,1 B,2 B,3
,-------------, ,-----------,
C,1 C,2 C,1 C,2
问题:是否有一个优雅的c++解决方案,以这种b-树合并使用std容器,或可能与库像boost?谢谢。
您可以使用Kasper peter的树。GPLv2和GPLv3。
这是一个类似于STL的n元树的实现。
文档中说有一个可变算法,叫做merge,可以合并两棵树。它还解释了它是如何实现的。
相关文章:
- 使用 boost::p roperty_tree::p tree 如何获取特定键的值
- 合并 2 个排序的链表。必需的成员函数 bool Merge(List342 &list1):
- LeetCode #617 "Merge Two Binary Trees"使用C++
- std::list::merge() 对于包含对象的列表失败
- Boost R-Tree中的最小边界矩形计算
- C++ EXC_BAD_ACCESS (Binary Tree)
- Boost::p tree - 访问列表中包含的属性树节点
- 当我尝试运行此代码输出时"merge.exe has stopped working"?
- 为什么我的Java Merge Sort比C++实现更快
- std::merge 不适用于 std::async
- Deserilizing n-ary tree
- Balancing KD Tree
- 如何填充'Tree'结构'Declaratively'
- std::merge 和 std::inplace_merge 之间的区别?
- 为什么qmap使用skiplist而不是ob rb-tree
- 没有匹配函数来调用 'merge(std::vector
&, std::vector &am - std::merge在C++中是如何工作的
- 避免在节点中添加重复的子级,使用 Kasper Peeters 的 Tree.hh 库
- SPOJ GSS1 WA - Segment tree
- C++ b-tree merge