比如说,我连续输入了未知大小的整数。在任何时刻,当接收到 k 个元素作为输入时,我想要一个大小为 k 的堆。如何在不事先初始化一定长度的数组的情况下实现这一点?
最佳答案
使用基于二叉树的堆。您不需要知道大小限制。
http://interactivepython.org/runestone/static/pythonds/Trees/BinaryHeapImplementation.html
即使使用基于数组的实现,您也可以在容量不足时使用分配大小加倍的技巧。它将具有相同的时间复杂度。
关于java - 是否可以在事先不知道输入大小的情况下实现堆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40122953/