一个简单的多叉树C++实现
一个简单的多叉树实现:
1. 利用迭代器方便地构建树,
2. 可以递归输出,前序,后序。
3. 利用栈实现输出。
4. 销毁树只能后序遍历
类的定义:
[cpp] view plaincopyprint?
01.
02.
03.
04.
05.
06.
07.
08.
09. #include <iostream> #include <string> #include <vector> #include <stack> #include <cassert> using namespace std template<class T> class htree_node{ public:
10. typedef htree_node<T> node_type
11. htree_node()
12. :parent(0),format(" ")
13. {}
14. htree_node(const T& x)
15. :name(x), parent(0), format(" ")
16. {}
17. ~htree_node()
18. {}
19. T name
20. //默认为两个空格
21. std::string format
22. node_type *parent
23. std::vector<node_type*> children 无法加载插件。24. }
25. template<class T, class Container = htree_node<T> >
26. class htree{
27. protected:
28. typedef Container tree_node
29. public:
30. htree()
31. :root(0)
32. { Init() }
33. htree(tree_node *node)
34. :root(node)
35.
36.
37.
38. { Init() } ~htree(){ destroy(root) }
39. //pre_order_iterator
40. class iterator{
41. public: