自己实现了个C++的树,用起来还可以,发出来分享一下,树里面用了C++Boost库的的东西,不知道boost的请去http://blog.csdn.net/lishuai369/archive/2010/07/15/5737898.aspx看看。
有很多时候都要用到“树”这种数据结构,但是无论在STL和Boost中都没有现成的“树”,我也不知道为什么没人写。这几天无聊中就自己实现了个TreeNode。
基本实现了Tree的功能,可以自己进程扩展,只要继承TreeNode就可以了。
我已经实现了一下功能:
1.Tree的基本结构,可以遍历(但是算法偶只实现了一个,以后有时间再扩展,很好扩展)
2.Tree的序列化,利用Boost.serialization库(这个很实用)
源代码我已经发到网上,你们可以下载:https://sourceforge.net/p/cpptree/tickets/1/
一下是我Test里面的:(我是用QT来写的,但是TreeNode是平台无关的,你们只要把源文件考到自己的“库dll、lib”工程里面就可以了)
这个是核心的几个类关系:
这个是测试结果树各个节点的输出:
这个是TreeNode类,tree就是由N个TreeNode组成的,你可以继承他,扩展自己的方法
这个是算法(仿函数):
这个是测试代码: