Safely move an element into a heap

castironpi castironpi at gmail.com
Thu Sep 4 15:45:33 EDT 2008


On Sep 4, 6:57 am, "Giampaolo Rodola'" <gne... at gmail.com> wrote:
> On 4 Set, 13:49, Alexandru Palade <alexandru.pal... at sellerengine.com>
> wrote:
>
>
>
> > I'm not sure what you expect as an answer, but if you mean the heap as
> > in the data structure, you can not just arbitrarily move one key where
> > you want as it will destroy the heap property.
>
> > Giampaolo Rodola' wrote:
> > > Hi,
> > > I wanted to know if does exist a safe way to, given a heap, move an
> > > arbitrary element to the first position of the heap.
> > > Something like:
>
> > >  >>> heap = [0,3,6,8,10]
> > >  >>> heapq.move_to_first_position(heap, 4)
> > >  >>> heap = [10, 0,3,6,8]
>
> > > --- Giampaolo
> > >http://code.google.com/p/pyftpdlib/
> > > --
> > >http://mail.python.org/mailman/listinfo/python-list-Nascondi testo citato
>
> > - Mostra testo citato -
>
> Could I be able to do that if every element I want to move will have
> the value of 0 which is the smallest value I can have into my heap?
> What I'm trying to do is implementing a timeout: sometimes I want a
> given event which was scheduled to happen within X seconds to happen
> immediately.
>
> --- Giampaolohttp://code.google.com/p/pyftpdlib/

Change its timeout to -1 and reheapify.  Or maintain 'zeroes' in a
separate structure.



More information about the Python-list mailing list