二叉树的实现

BinaryTree.h

创新互联专业为企业提供睢县网站建设、睢县做网站、睢县网站设计、睢县网站制作等企业网站建设、网页设计与制作、睢县企业网站模板建站服务,十年睢县做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

#pragma once
template 
struct BinaryTreeNode
{
 BinaryTreeNode* _right;
 BinaryTreeNode* _left;
 T _data;
 BinaryTreeNode(const T& d)
  :_right(NULL)
  ,_left(NULL)
  ,_data(d)
 {}
};
template 
class BinaryTree
{
 typedef BinaryTreeNode Node;
public:
 BinaryTree()
  :_root(NULL)
 {}
 BinaryTree(const T* a, size_t size, const T& invalid)
 {
  size_t index = 0;
  _root = _CreatTree(a, size, index, invalid);
 }
 BinaryTree(const BinaryTree& t)
 {
  _root = _CopyTree(t._root);
 }
 ~BinaryTree()
 {
  _Destory(_root);
  _root = NULL;
 }
 size_t Size()      //求二叉树结点数目
 {
  return _Size(_root);
 }
 size_t Depth()    //求二叉树深度
 {
  return _Depth(_root);
 }
 void PrevOrder()   //前序遍历
 {
  _PrevOrder(_root);
  cout<_left = _CreatTree(a, size, ++index, invalid);
   root->_right = _CreatTree(a, size, ++index, invalid);
  }
  return root;
 }
 Node* _CopyTree(const Node* root)
 {
  if(root == NULL)
  {
   return NULL;
  }
  Node* newRoot = new Node(root->_data);
  newRoot->_left = _CopyTree(root->_left);
  newRoot->_right = _CopyTree(root->_right);
  return newRoot;
 }
 void _Destory(Node* root)
 {
  if(root == NULL)
  {
   return;
  }
  _Destory(root->_left);
  _Destory(root->_right);
  delete root;
 }
 size_t _Size(Node* root)    
 {
  if(root == NULL)
  {
   return 0;
  }
  return _Size(root->_left)+_Size(root->_right)+1;
 }
 size_t _Depth(Node* root)
 {
  if(root == NULL)
  {
   return 0;
  }
  size_t leftDepth = _Depth(root->_left);
  size_t rightDepth = _Depth(root->_right);
  return leftDepth > rightDepth ? leftDepth+1 : rightDepth+1;
 }
 void _PrevOrder(Node* root)
 {
  if(root == NULL)
  {
   return;
  }
  cout<_data<<",";
  _PrevOrder(root->_left);
  _PrevOrder(root->_right);
 }
private:
 Node* _root;

当前题目:二叉树的实现
链接地址:http://hxwzsj.com/article/jdeopc.html

其他资讯

Copyright © 2025 青羊区翔捷宏鑫字牌设计制作工作室(个体工商户) All Rights Reserved 蜀ICP备2025123194号-14
友情链接: 成都企业网站建设 成都网站设计 外贸营销网站建设 网站建设公司 重庆企业网站建设 企业网站设计 成都网站建设 LED网站设计方案 成都网站建设公司 阿坝网站设计 成都网站建设 定制网站设计 网站制作 成都网站建设 成都网站建设 H5网站制作 高端网站建设 商城网站建设 泸州网站建设 成都网站建设公司 网站设计公司 成都网站制作