-3

我想做下一棵树:

                                      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
4

1 回答 1

1

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

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

Sorting the result takes std::sort along with a comparison function that compares the individual elements in each item. If you're sure each element will only be a single digit, you can use a simple lexical comparison instead.

于 2012-07-20T15:33:49.877 回答