template<class T>
struct BiNode
{
T data;
BiNode<T> *lchild, *rchild;
};
其中的T是什么意思?
先序遍历的算法如下(递归)
template<class T>
void PreOrder(BiNode<T> *root)
{
if(root==NULL) return;
else
{
cout<<root->data;
PreOrder(root->lchild);
PreOrder(root->rchild);
}
}
怎么写主函数,我新手不会,烦死我了。
其中T代表的是类模板
这个程序在写主函数之前应该建立二叉树,有两种方法给你参考,一种是:用任意一种先序或中序后序建立。程序如下
template <class T> void MakeTree(BiTreeNode<T>&*t) { int c; cin>>c;
t=BiTreeNode<T>(C);
MakeTree(t->lchild);
MakeTree(t->rchild); }这是用先序遍历建立了一棵二叉树;
然后去主函数调用你先序遍历的函数和我才定义的建立二叉树的函数就可以了
void main()
{
Bitree T //先声明树,我不清楚你用的标识符是啥
Creattree(T);//构造一棵树
PreOrder(T);//前根序访问。 然后没了,主函数很简单的
}