二叉链表树中结点个数 与空指针个数 二叉树的边数的关系

二叉链表树中结点个数 与空指针个数 二叉树的边数的关系

二叉树的 每个结点可以表示为 

struct Node

{

int   number;

Node* lchild,*rchild; //含有两个指针

};

二叉树的的二叉链表存储结构中每个结点有2个指针。每个结点有0个、1个或者2个空指针对应有2个、1个、0个非空指针。

二叉树中边的个数等于非空指针的个数。

假设二叉树中节点的总个数为N,

假设二叉树中边的个数为M

假设二叉树中度为0的结点的个数为n0, 

假设二叉树中度为1的结点的个数为n1,

假设二叉树中度为2的结点的个数为n2.

所以有  n0+n1+n2=N  -------------(1)

二叉树中除了根结点之外,其他的结点都有一条便进入该结点,所以二叉树中边的总个数为M=N-1;-------(2)

又 M=n1+2*n2;-------------------------(3)

所以由 (1)(2)(3)可得  n0=n2+1;--------------------(4)

设空节点的 个数为 K  ,则K=2*n0+n1-------------------(5)  

结合(1)(4)(5)可以得到  K=N+1.  (空指针的的个数比结点总个数多1)

由(2)可以知道  边数M=N-1;(二叉树的边数为结点个数减1)

由(4)可以知道度为0的结点的个数(叶子结点个数)=度为2的结点个数+1  (n0=n2+1;)




  • 15
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值