假定root这一次对应高度为k=0 以下是以完全二叉树去构建的 第n层满了 才去铺第n+1层
i=0
i 2^0
2i+1 2i+2 2^1
2i+3 2i+4 2i+5 2i+6 2^2
到第k-1层的总结点数为:
2^0+2^1+2^2+2^3+...2^(k-1)= 2^k-1
所以第k层的第一个节点编号为2^k 因为我们这里的编号定义为从0开始
所以第k层的第一个节点编号为2^k - 1
================================================================================
假设第k层的值为n
令2^k-1=n
则2^(k+1)-1=2^k*2-1=2n+2-1=2n+1
即第k+1层的第一个节点编号为2n+1 ####线索1
n n+1
n n+1 n+2 n+3
2n+1 2n+2 2n+3 2n+4 2n+5 2n+6 2n+7 2n+8
k1代表k+1层的节点编号
k0代表第k层的节点编号
由####线索1得出
k1-1
---------------- =2
k0
令
k1-1 2m
-------------- =------
k0 m
第k层每 右移1个元素 k+1层的子节点编号+2 假设右移m1个元素 则分子上编号增加2m1 分母增加m1
2m +2m1 2(m+m1)
--------------- = --------------=2
m + m1 m+m1
即父节点如果编号为n 则 子节点编号只可能是 2n+1 或 2n+2