#10511: clarification of what heaps are; suggested by Johannes Hoff.
authorGeorg Brandl <georg@python.org>
Tue, 23 Nov 2010 08:37:54 +0000 (08:37 +0000)
committerGeorg Brandl <georg@python.org>
Tue, 23 Nov 2010 08:37:54 +0000 (08:37 +0000)
Doc/library/heapq.rst

index 67bda5698d1b276d86086c354d7a107006620a72..f6b14ca6d91d92adcef07102c80fc90e23179904 100644 (file)
@@ -16,11 +16,12 @@ as the priority queue algorithm.
    Latest version of the :source:`heapq Python source code
    <Lib/heapq.py>`
 
-Heaps are arrays for which ``heap[k] <= heap[2*k+1]`` and ``heap[k] <=
-heap[2*k+2]`` for all *k*, counting elements from zero.  For the sake of
-comparison, non-existing elements are considered to be infinite.  The
-interesting property of a heap is that ``heap[0]`` is always its smallest
-element.
+Heaps are binary trees for which every parent node has a value less than or
+equal to any of its children.  This implementation uses arrays for which
+``heap[k] <= heap[2*k+1]`` and ``heap[k] <= heap[2*k+2]`` for all *k*, counting
+elements from zero.  For the sake of comparison, non-existing elements are
+considered to be infinite.  The interesting property of a heap is that its
+smallest element is always the root, ``heap[0]``.
 
 The API below differs from textbook heap algorithms in two aspects: (a) We use
 zero-based indexing.  This makes the relationship between the index for a node