我想做下一棵树:
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
答案 0 :(得分:1)
如果你真的认为你需要使用Boost,那么显而易见的地方就是Boost Graph Library。然而,老实说,这有点像使用核武器来杀死蚊子。
第一部分是一个简单的二叉树,甚至不需要平衡,因此只需在适当的位置遍历和插入项目即可。获得结果同样简单 - 遍历树,并在输出中添加一个节点,当且仅当它是叶子时。
对结果进行排序需要std::sort
以及比较每个项目中各个元素的比较函数。如果您确定每个元素只是一个数字,则可以使用简单的词法比较。