C ++ b-tree合并

时间:2011-12-14 23:02:16

标签: c++ boost b-tree

作为一个例子,我有以下b树模型,每个节点都包含标签/值对。树指示优先级(或优先级),根最高,向下最低(但这是应用程序特定的)。我想将一个新的树节合并到父节点中,新节包含可能常见的标签/值对,一直到叶节点正上方的节点(完全重复的新树节将不合并)。 E.g。

现有的树(标记,值)对表示:

            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

问题:对于使用std容器的b-tree合并,是否有一个优雅的C ++解决方案,或者可能使用像boost这样的库?感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用Kasper Peeter的tree.hh库,它是GPLv2和GPLv3。

这是一个类似STL的实现n-ary树。

documentation表示有一个可变算法,名为merge,可以合并两棵树。它还解释了它是如何实现的。

相关问题