请先看算法:
#include<iostream>
using namespace std;
//============结点类和二叉链表类=============
template <class T>
struct BiNode
{
T data;
BiNode<T> *lchild, *rchild;
};
//-------------------
template <class T>
class BiTree
{
public:
BiTree(BiNode<T> *root);
void InOrder(BiNode<T> *root);
private:
BiNode<T> *root;
void Creat(BiNode<T> *root);
};
//====================定义=========================
template <class T>
BiTree<T>::BiTree(BiNode<T> *root)
{
Creat(root);
}
template <class T>
void BiTree<T>::Creat(BiNode<T> *root)
{
cin>>ch;
if(ch=='#') root=NULL;
else
{
root->data=ch;
Creat(root->lchild);
Creat(root->rchild);
}
}
template <class T>
void BiTree<T>::InOrder(BiNode<T> *root)
{
if(root==NULL) return;
else
{
InOrder(root->lchild);
cout<<root->data;
InOrder(root->rchild);
}
}
int main()
{
BiTree<char> bi(root);
bi.InOrder(root);
return 0;
}
错误为:error C2065: 'root' : undeclared identifier
请问:错误怎样解决?还有,请教一下带指针参数的类模板应该怎样运用?谢谢。