void insert(int *heap, int n, int e)
{
int i;
for (i = (n+1); i > 1 && heap[i/2] < e; i /= 2) {
heap[i] = heap[i/2];
}
heap[i] = e;
}
把 e 先插入最后一个位置heap[n+1],从下网上调整,把所有比 e 小的祖先
都下移一个位置,最后把 e 放入合适的位置。
从最后一个节点开始,遍历祖先节点,找到第一个大于 e 的祖先,
然后这个祖先的孩子就是插入位置。