首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

求改正算法,该怎么处理

2012-06-15 
求改正算法今天写了一个“统计二叉树中度为0的结点个数”的算法,不知道正确不,求大侠真正并修改,多谢了Int Z

求改正算法
今天写了一个“统计二叉树中度为0的结点个数”的算法,不知道正确不,求大侠真正并修改,多谢了


Int ZeroDegree(Btree T)
{
  Int lcount,rcount;

  If(!T) return 0;

  ZeroDgree(T->lchild);

  If(!T->lchild && !T->rchild)

  lcount++;

  ZeroDegree(T->rchild);

  If(!T->lchild && !T->rchild)

  rcount++;

  Return lcount+rcount;
}

[解决办法]
感觉楼主写的有点乱,个人比较喜欢:
int count=0;
void ZeroDegree(Btree T)
{
if(T&&(!T->lchild)&&(!T->rchild)&&(++i))
return ;
else
{
ZeroDegree(T->rchild);
ZeroDegree(T->lchild);
}
}
先选择遍历树的右节点,是因为上面的if条件中先T->lchild,所以这样写会再左节点为空时减少点调用
[解决办法]
int ZeroDegree(Btree T)
{
if (NULL == T)
{
return 0;
}

int count = ZeroDgree(T->lchild) + ZeroDegree(T->rchild);
if (0 == count)
{
count = 1;
}

return count;
}
[解决办法]

C/C++ code
int ZeroDegree(Btree T){    if(0 == T)                                return 0;    if((0 == T->lchild)&&(0 == T->rchild))    return 1;        return ZeroDgree(T->lchild)+ZeroDegree(T->rchild);}
[解决办法]
探讨
今天写了一个“统计二叉树中度为0的结点个数”的算法,不知道正确不,求大侠真正并修改,多谢了


Int ZeroDegree(Btree T)
{
Int lcount,rcount;

If(!T) return 0;

ZeroDgree(T->lchild);

If(!T->lchild && !T->rchild)

lcou……

热点排行