证明完全二叉树第n个节点的左节点编号为2n

下面先证明(1)完全二叉树中任何一层最左的节点编号n,则其左子树为2n,右子树为2n+1.
显然,每个节点的编号N = 按层遍历位于该节点前面的节点数目+1.
对于第L层的最左节点,在它之前的节点即为第1层到第L-1层的所有节点,共
2^0+2^1+...+2^(L-2) = 2^(L-1)-1个(注意第i层共有2^(i-1)个节点)。
则第L层最左节点编号为2^(L-1),其左子树为第L+1层的最左节点,故编号为2^L。这样,(1)被证明了。

下面证明
(2)完全二叉树中任一节点编号n,则其左子树为2n,右子树为2n+1.
任取一节点N,其编号为n。设N所在的这一层L的最左节点为M,编号为m。
显然,L层中位于N左边的节点数为n-m个。N的左子树NL位于第L+1层,由于是完全二叉树,第L+1层中位于NL之前的节点数为2(n-m).由(1)可知第L+1层的最左节点编号为2m,那么NL的编号为2m+2(n-m)=2n.

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值