C++二叉树遍历的过程中怎样计算结点个数

如题所述

第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即为总节点个数~~
第2个回答  2012-05-07
int num(Binarynode& r)
{
int n = 0;
if(!r) return 0;
n += 1+num(r->lchild);
n += 1+num(r->rchild);
return n;
}
现编的 LZ凑活着看 不在编译器里写的 我自己觉得风格也怪怪的 有什么错误直接说
第3个回答  2012-05-04
设置一个全局变量,在遍历过程中让变量循环自加,在主函数中输出该变量
相似回答
大家正在搜