C++ b-tree merge

C++ b-tree merge

本文关键字:merge b-tree C++      更新时间:2023-10-16

作为示例,我有以下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,可以合并两棵树。它还解释了它是如何实现的。