假定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