用c++/boost对树进行索引

index trees with c++/boost

本文关键字:索引 c++ boost      更新时间:2023-10-16

我想做下一个树:

                                      1     
                    1.1                                 1.2  
       1.1.1                 1.1.2          1.2.1                1.2.2
 1.1.1.1   1.1.1.2                                         1.2.2.1   1.2.2.2 

最后我有一个列表,所有索引的最终级别如下,(无序):

1.2.2.2
1.2.2.1
1.1.1.2
1.2.1        
1.1.2 
1.1.1.1 

如何使用boost库以这种方式进行索引并按如下方式排序:

1.1.1.1 
1.1.1.2
1.1.2 
1.2.1   
1.2.2.1   
1.2.2.2

如果你真的认为你需要使用Boost,那么显而易见的地方就是Boost图库。然而,老实说,这有点像用核武器杀死蚊子。

第一部分是一个简单的二叉树,它甚至不需要平衡,所以只需要在适当的地方遍历和插入项。获得结果同样简单——遍历树,并在输出中添加一个节点,当且仅当它是一个叶子时。

对结果进行排序需要std::sort以及比较每个项目中各个元素的比较函数。如果你确定每个元素都只有一个数字,你可以使用一个简单的词汇比较。