当前位置:   article > 正文

二叉树的基本操作以及相关问题的求解—C++实现_creatbintree怎么用

creatbintree怎么用

二叉树

二叉树是重要的数据结构,在学习中以及考试、面试中不可避免的考点,现在我就把有关二叉树的操作用C++总结 一下,可能有些同学使用的是C语言,但是无论C语言还是c++,对于二叉树的操作方法都是一样的,之后,我也会抽空给出C语言的实现。

本次实现是在vs2008的一个集成开发环境,为了增强代码的复用性,此次编写使用了模版,关于模版可以参考的我的另外一篇博客:http://blog.csdn.net/dy_1024/article/details/78643644,如果大家在使用的时候,不实用模版,只需把代码中的模版类型T,换成你需要的类型即可。

首先我们用结构体给出二叉树结点的结构:

  1. template<class T>//如果大家不使用模版的话,把这行代码去掉,将结构体中的T该成你需要的类型即可
  2. struct BinTreeNode{
  3. BinTreeNode(const T& data):_left(NULL),_right(NULL),_data(data){}//二叉树结点的构造函数,方便之后给出新结点
  4. BinTreeNode* _right;//右子树
  5. BinTreeNode* _left;//左子树
  6. T _data;//数据域
  7. };
因为使用c++,所以我们将二叉树封装成一个二叉树类,进行管理,同样使用模版:

  1. template<class T>
  2. class BinTree
  3. {
  4. typedef BinTreeNode<T> Node;//将之前的类此重定义,方便以后的使用
  5. typedef Node* PNode;
  6. public:
  7. BinTree():_pRoot(NULL){}
  8. //构造函数里面使用的创建二叉树的函数,
  9. void _CreatBinTree(PNode& pRoot,const T* array,size_t size,size_t& index,const T& invalid)
  10. {
  11. if(index<size && array[index] != invalid)
  12. {
  13. pRoot = new Node(array[index]);
  14. _CreatBinTree(pRoot->_left,array,size,++index,invalid);
  15. _CreatBinTree(pRoot->_right,array,size,++index,invalid);
  16. }
  17. }
  18. //构造函数,在给构造函数传参的时候,我们定义:char *array ="ABD###CE##F",这是二叉树前序遍历的结果,&
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/245897
推荐阅读
相关标签
  

闽ICP备14008679号