满k叉树编号为 i 的节点的孩子编号公式推导

结论

满k叉树编号为i的节点第一个孩子的编号 j 满足j = (i - 1) * k + 2;

推导过程

设: 节点 i 处在该 m 叉树的第 h层, (h = 1, 2, 3...)

则 前 h - 1 层共有  N1 =\frac{k^{h-1}-1}{k-1}  个节点

同理 前 h 层共有  N2 =\frac{k^{h} - 1}{k -1} 个节点

显然 i 是第 h 层的 i -N1个节点, 即 节点i 有 i -N1 - 1 个左兄弟

故节点i 的第一个孩子 j 有 (i -N1 -1)*k个左兄弟

由此可得 j在第h + 1 层中的位置为 (i -N1 -1)*k + 1

那么 节点j 在整棵满 k叉树的编号为N2 + (i -N1 -1)*k + 1

即 j =\frac{k^{h} - 1}{k -1} +(i -\frac{k^{h-1} -1}{k-1} -1)*k + 1

整理可得: j = (i - 1) * k + 2

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值