質問

heapqのLIBSによって作成されたPythonヒープに覗きの公式の方法は何ですか?今私が持っている

def heappeak(heap):
  smallest = heappop(heap)
  heappush(heap, smallest)
  return smallest

、間違いなく非常に素晴らしいされていません。私はいつもheap[0]はヒープのトップであることを想定し、それを使用することはできますか?またはその基礎となる実装のあまりを前提としますか?

役に立ちましたか?

解決

それはのマニュアルに記載されているので、

はい、あなたは、この仮定を行うことができます>:

  

ヒープは、すべてのためにどのheap[k] <= heap[2*k+1]heap[k] <= heap[2*k+2]用アレイ K 、カウントされ   ゼロからの要素。のために   比較、存在しない要素があります   無限であると考えられて。 <強いです>   ヒープの興味深い特性は、ということです   heap[0]は常に最小であります   要素。の

(そしてそれはおそらく何のpeek機能がない理由です:それは必要ありません。)

他のヒント

あなたは、Python 2.4以降を使用している場合は、

、あなたも)(heapq.nsmallestを使用することができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top