永发信息网

C++ 带指针参数的类模板的运用

答案:2  悬赏:20  手机版
解决时间 2021-08-21 17:30

请先看算法:

#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

请问:错误怎样解决?还有,请教一下带指针参数的类模板应该怎样运用?谢谢。

最佳答案

你没有定义根结点.写个最简单的,就一个结点.


把main()改为:



int main()
{


BiNode<char> root;


root.data = 'r';
root.lchild = NULL;


root.rchild = NULL;

BiTree<char> bi(&root);
bi.InOrder(root);
return 0;
}

全部回答

'root' : undeclared identifier

未定义

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
温岭到广州的车票多少钱一张
谁能告诉我satan的涵义?
春风吹呀吹是哪首歌,王心凌有首歌的歌词是:
在死前,你最先会想到谁?
儿童相声台词大全,小学生搞笑相声剧本
鄂城区鄂州虹点歌厅地址在哪,我要去那里
什么情况下是正电荷、什么情况下是负电荷?
汉英译,一个短文题目我的假期生活请翻译成英
新娘要买哪些衣服
哪种动物跟人类基因最接近
怎么可以得胃出血?要快的
s=text1.text是啥意思
为什么手放在水中会皱缩?而不是膨胀?
合肥火车站到白湖监狱有汽车吗?
洪湖市荆州东升建材地址是什么,有没有知道的
推荐资讯
玻璃是如何制成的?如今有什么玻璃有什么功能
牛奶空腹喝好吗?
跪求!QQ仙境激活码!
数学题该怎么做?
为什么刘心要人气人气低,要长相没长相,要实
朗诵母爱有关的诗歌,关于《游子吟》的问题
江岸区武汉时代天音钢琴培训哪位知道具体地址
笔记本换个主板多少钱,一般笔记本换主板要多
膝盖弯曲疼痛是什么原因?
坐地铁、能去房山北京市公共交通高级技工学校
PatchSetings.ini下载失败,请下载手动补丁包-
世界上最稀有的动物是什么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?