一个简单的多叉树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:  

一个简单的多叉树C++实现相关文档

最新文档

返回顶部