使用c ++ / boost索引树

时间:2012-07-20 15:16:26

标签: c++ boost

我想做下一棵树:

                                      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

1 个答案:

答案 0 :(得分:1)

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

第一部分是一个简单的二叉树,甚至不需要平衡,因此只需在适当的位置遍历和插入项目即可。获得结果同样简单 - 遍历树,并在输出中添加一个节点,当且仅当它是叶子时。

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