在heapq库创建的python堆中偷看的官方方式是什么?现在我有在python中偷看堆
def heappeak(heap):
smallest = heappop(heap)
heappush(heap, smallest)
return smallest
这是可以说,不是很好。我能否始终认为heap[0]
是堆的顶部并使用它?或者会假设太多的底层实现?
在heapq库创建的python堆中偷看的官方方式是什么?现在我有在python中偷看堆
def heappeak(heap):
smallest = heappop(heap)
heappush(heap, smallest)
return smallest
这是可以说,不是很好。我能否始终认为heap[0]
是堆的顶部并使用它?或者会假设太多的底层实现?
是的,你可以做这样的假设,因为它是在documentation说:
堆是数组为其
heap[k] <= heap[2*k+1]
和heap[k] <= heap[2*k+2]
所有ķ,从零开始计数 元素。为了比较 ,不存在的元素被认为是无限的 。 堆的有趣属性是heap[0]
始终是其最小的 元素。
(而这有可能是没有peek
功能的原因:没有必要为它)
我找不到这些信息的原因可能是我拼写错误。大! – Thomas
尽管拼写正确可能会帮助你,但我仍然好奇地观察到这个词在文档中不会出现。 – Stephan202
你的意思是“偷看”? – chazomaticus