
正文
二叉树BinTree类定义
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
#include<iostream>
using namespace std;
template<class T>
struct BinTreeNode{//二叉树结点类
T data;//数据
BinTreeNode<T>*leftChild,*rightChild;//左子指针,右子指针
// BinTreeNode():leftChild(NULL),rightChild(NULL){}
BinTreeNode(T x,BinTreeNode<T>*l=NULL,BinTreeNode<T>*r=NULL):data(x),leftChild(l),rightChild(r){}
};
template<class T>
class BinTree{//二叉树类定义
protected:
BinTreeNode<T>*root;//二叉树的根指针
public:
// BinTree():root(NULL){}//空构造函数
// ???BinTree(T value):root(NULL){}//构造函数
17 // BinTree(T x,BinTreeNode<T>*lc=NULL,BinTreeNode<T>*rc=NULL){
// BinTreeNode<T> rootNode(x,lc,rc);
// root=&rootNode;
}
~BinTree(){destroy(root);}//析构函数
bool IsEmpty(){return root==NULL?true:false;}//判断是否为空树
void destroy(BinTreeNode<T>*subTree);//删除子树
};
template<class T>
void BinTree<T>::destroy(BinTreeNode<T>*subTree){
if(subTree!=NULL){
destroy(subTree->leftChild);//递归删除左子树
destroy(subTree->rightChild);//递归删除右子树
delete subTree;
}
}
int main(){
;
}






