我想在我的程序中使用词汇树(不一定是二进制),我已经对如何创建树类有一个大概的想法,但我想知道是否有任何c ++库对此有用。如果不是,我想了解我可以用来更快地管理树的方法(添加/删除/访问节点),比如将它们存储在连续的内存位置。
谢谢
答案 0 :(得分:2)
您可以使用The Boost Graph Library为各种树木建模。
答案 1 :(得分:2)
虽然在oleskii的link中提及std::map
和std::set
,但它们是二叉树。任何n-ary tree can be rearranged to a binary tree,但这可能对您没有帮助,因为重新组织需要时间。 boost图库更通用。
快速google for n-ary trees C ++“刚出现treetree
“Treetree是一个仅用于标头的C ++库,它实现了泛型 根据STL惯例“
的树结构容器类
如果您想更快地使当前的树实现,您应该测量它当前很慢的位置。
检查简单的事情,例如确保通过引用而不是通过副本传递。