java - 计算堆中的空闲空间?跟踪最后一次插入?

标签 java heap

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

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

最佳答案

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

关于java - 计算堆中的空闲空间?跟踪最后一次插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5288969/

相关文章:

java - 允许更改 key 的最大堆

arrays - 为什么heap.Pop与反向数组一起使用?

algorithm - 证明二叉堆构建最大比较是 (2N-2)

Java:测试通过 Interface、Mockito、JUnit 传递的具体类

java - AWS SNS 响应处理

java - 如何在 Glassfish 3.0 嵌入式 API 中激活 SSL(HTTPS)?

algorithm - 从堆中间删除一个节点

java - while循环条件怎么写

java - 将文本文件中的数字读取到 Java 中的 ArrayList

c++ - 为什么我可以更新 boost::fibonacci_heap 中弹出的元素?