当前位置 : 主页 > 编程语言 > c语言 >

计算二叉树结点总数

来源:互联网 收集:自由互联 发布时间:2023-09-06
解决思路 如果是空树,则结点个数为0; 否则,结点个数为左子树的结点个数+右子树的结点个数再+1 int NodeCount(BiTree T){ if(T==NULL) return 0; else return NodeCount(T-lchild)+LeaveCount(T-rchild)+1;} 补充

解决思路

如果是空树,则结点个数为0;

否则,结点个数为左子树的结点个数+右子树的结点个数再+1

int NodeCount(BiTree T)
{
  if(T==NULL)
    return 0;
  else
    return NodeCount(T->lchild)+LeaveCount(T->rchild)+1;
}

补充算法——计算二叉树的叶子结点数

如果是空树,则结点个数为0;

否则,结点个数为左子树叶子结点个数+右子树的叶子结点个数

为什么求叶子结点时不需要加1呢,求叶子结点,根结点既然有左子树和右子树,那它肯定就不是叶子结点,所以就不需要加1。

int LeafCount(BiTree T)
{
  if(T==NULL)
    return 0;
  if(T->lchild==NULL&&T->rchild==NULL)
    return 1
  else
    return LeafCount(T->lchild)+LeafCount(T->rchild);
}


【本文由:阿里云代理 http://www.56aliyun.com 复制请保留原URL】
上一篇:自定义导航栏(navigation-bar.1.0.0.js)
下一篇:没有了
网友评论