第1个回答 2012-05-05
很简单,先输入一颗树l[i]表示数某一个节点的左子树编号,r[i]表示某个节点的右子树编号。
那么
int num;
int l[i],r[i];
void maketree()//建树
{
int n;
cin>>n;//表示有要输入几组
for (int i=0;i<n;i++)
{
cin>>f>>le>>ri;//输入某个根节点编号和左右子数编号
l[f]=le;
r[f]=ri;
}
}
//剩下的只要写一个算节点的函数
void getsum(int f)
{
if(f==0)
return;//是由根节点往下递归的,直接返回
num++;//算上这个点
get(l[f]);//访问左子树根
get(r[f]); //访问右子树根
}
在main()里调用这两个函数,先建树,再数节点,最后输出num即为总节点个数~~