最后一个非叶子节点索引公式推导:
如果根节点的索引为0,那么最后一个非叶子节点的索引为 (N / 2) - 1。N为节点的数量。
最后一个节点的索引为 N - 1。最后一个节点的父节点即为最后一个非叶子节点。
已知最后一个节点的索引,以此推导出其父节点索引。
如果N为奇数,假设最后一个非叶子节点的索引为k1,那么有 2 * k1 + 2 = N - 1,所以
如果N为偶数,假设最后一个非叶子结点的索引为k2,那么有 2 * k2 + 1 = N - 1,所以
我们使用,并对其取整,作为统一的公式,
当N为偶数时k2是正确值,
当N为奇数时,使用k2比正确值大1/2。但是向下取整后,即为正确值。所以使用[K2]是可以的。
[K2]对于N为偶数和奇数都可以。