在堆中找出自由点?跟踪最后一次插入?

时间:2011-03-13 11:07:19

标签: java heap

如何跟踪插入堆中的位置:我认为使用检查每个子树高度的函数会将算法从O(log N)降级为O(N)。

所以你在每个节点中保留一个变量,还是在堆中具有最后一个插入点的变量(定义如何?)。

1 个答案:

答案 0 :(得分:1)

堆是“几乎已满”的二叉树。所以你只有一个选择,你应该插入新元素,不需要高度检查 - 但指向下一个元素应插入的位置的指针。 这当然足以确保O(logn)的高度