在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