1 #include<iostream> 2 using namespace std; 3 template<class T> 4 struct BinTreeNode{//二叉树结点类 5 T data;//数据 6 BinTreeNode<T>*leftChild,*rightChild;//左子指针,右子指针 7 // BinTreeNode():leftChild(NULL),rightChild(NULL){} 8 BinTreeNode(T x,BinTreeNode<T>*l=NULL,BinTreeNode<T>*r=NULL):data(x),leftChild(l),rightChild(r){} 9 }; 10 template<class T> 11 class BinTree{//二叉树类定义 12 protected: 13 BinTreeNode<T>*root;//二叉树的根指针 14 public: 15 // BinTree():root(NULL){}//空构造函数 16 // ???BinTree(T value):root(NULL){}//构造函数 17 // BinTree(T x,BinTreeNode<T>*lc=NULL,BinTreeNode<T>*rc=NULL){ 18 // BinTreeNode<T> rootNode(x,lc,rc); 19 // root=&rootNode; 20 } 21 ~BinTree(){destroy(root);}//析构函数 22 bool IsEmpty(){return root==NULL?true:false;}//判断是否为空树 23 void destroy(BinTreeNode<T>*subTree);//删除子树 24 }; 25 template<class T> 26 void BinTree<T>::destroy(BinTreeNode<T>*subTree){ 27 if(subTree!=NULL){ 28 destroy(subTree->leftChild);//递归删除左子树 29 destroy(subTree->rightChild);//递归删除右子树 30 delete subTree; 31 } 32 } 33 int main(){ 34 35 return 0; 36 }
二叉树BinTree类定义
猜你喜欢
转载自www.cnblogs.com/TYXmax/p/10980717.html
今日推荐
周排行