Double-Ended Heaps

Scott David Daniels scott.daniels at acm.org
Mon Dec 19 19:59:10 EST 2005


Bryan Olson wrote:
> Scott David Daniels wrote:
>> I've just put together a Double-Ended Heap package.
>> Of course I'd love comments.
>>
>>    http://members.dsl-only.net/~daniels/deheap.html
> 
> I think there's a typo in:
> 
>     Note that any change to the contents of a DeHeap (and
>     therefore a DeHeap2) any re-arrange the indices of a
>     number of entries in the DeHeap.
> 
> A useful Python class will follow Python convention, where
> relevant convention exists. In this case that means optionally
> passing the ordering relation; look at sort() and sorted().
> 
> Adopting the convention will raises another issue: distinct
> objects can compare as equal, so the DeHeap2 operations that
> find items by value will be at least under-defined, and maybe
> even broken. There are several ways to solve the problem, and
> I don't know of Python convention as to which to choose.
> 
> 
OK, I've a new version out there.

deheap.deheap(iterable=(), key=None, sequence=False)

is a factory function making an appropriate instance.
The testing is not all that thorough on the sequence=True
classes (where even pop can use an index), but I suspect it
all works (famous last words).

--Scott David Daniels
scott.daniels at acm.org



More information about the Python-list mailing list