我在BiNode中定义了模板DataType ,在Bitree中调用时却编译提示我对于参数“DataType”,“DataType”不是有效的 模板 类型变量 未声明的标识符......求解(文件是头文件)
#ifndef BiTree_H
#define BiTree_H
template <class DataType>
struct BiNode //二叉树的结点结构
{
DataType data;
BiNode *lchild, *rchild;
};
class BiTree
{
public:
BiTree() { root = Creat(root); } //构造函数,建立一棵二叉树
~BiTree() { Release(root); } //析构函数,释放各结点的存储空间
void PreOrder() { PreOrder(root); } //前序遍历二叉树
void InOrder() { InOrder(root); } //中序遍历二叉树
void PostOrder() { PostOrder(root); } //后序遍历二叉树
void LeverOrder(); //层序遍历二叉树
private:
BiNode<DataType> *root; //指向根结点的头指针
BiNode<DataType> *Creat(BiNode<DataType>*bt); //构造函数调用
void Release(BiNode<DataType> *bt); //析构函数调用
void PreOrder(BiNode <DataType> *bt); //前序遍历函数调用
void InOrder(BiNode<DataType> *bt); //中序遍历函数调用
void PostOrder(BiNode<DataType> *bt); //后序遍历函数调用
};
#endif
#ifndef BiTree_H
#define BiTree_H
template <class DataType>
struct BiNode //二叉树的结点结构
{
DataType data;
BiNode *lchild, *rchild;
};
class BiTree
{
public:
BiTree() { root = Creat(root); } //构造函数,建立一棵二叉树
~BiTree() { Release(root); } //析构函数,释放各结点的存储空间
void PreOrder() { PreOrder(root); } //前序遍历二叉树
void InOrder() { InOrder(root); } //中序遍历二叉树
void PostOrder() { PostOrder(root); } //后序遍历二叉树
void LeverOrder(); //层序遍历二叉树
private:
BiNode<DataType> *root; //指向根结点的头指针
BiNode<DataType> *Creat(BiNode<DataType>*bt); //构造函数调用
void Release(BiNode<DataType> *bt); //析构函数调用
void PreOrder(BiNode <DataType> *bt); //前序遍历函数调用
void InOrder(BiNode<DataType> *bt); //中序遍历函数调用
void PostOrder(BiNode<DataType> *bt); //后序遍历函数调用
};
#endif