Safely move an element into a heap

  • Thread starter Giampaolo Rodola'
  • Start date
A

Alexandru Palade

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.

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/
 
G

Giampaolo Rodola'

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.


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]

- 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.


--- Giampaolo
http://code.google.com/p/pyftpdlib/
 
C

castironpi

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 said:
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/
- 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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,995
Messages
2,570,231
Members
46,820
Latest member
GilbertoA5

Latest Threads

Top