typedef TimeVal Heap_Key | Heap_Key |
[protected]
heap_entry (struct) | heap_entry |
[protected]
Heap ()
| Heap |
Default constructor used to build a standard heap with no support for removal from the middle.
explicit Heap (bool)
| Heap |
Constructor used to build a standard heap with support for removal from the middle. Should be used with something like:
struct _foo { ... ; int my_index ; ... } x; ... Heap *h = new Heap (OFFSET_OF(x, my_index));
~Heap ()
| ~Heap |
[virtual]
void push (Heap_Key k, HeapBase *p)
| push |
Push an object into the heap by using a sorting key.
Parameters:
k | the sorting key. |
p | the object to push into the heap. |
void push (int i)
| push |
Bubble-up an object in the heap.
Note: this probably should not be exposed.
Parameters:
i | the offset of the object to bubble-up. |
void move (Heap_Key new_key, HeapBase *object)
| move |
Move an object in the heap according to the new key. Note: can only be used if the heap supports removal from the middle.
Parameters:
new_key | the new key. |
object | the object to move. |
struct heap_entry * top ()
| top |
[const]
Get a pointer to the entry at the top of the heap.
Both the key and the value can be derived from the return value.
Returns: the pointer to the entry at the top of the heap.
size_t size ()
| size |
[const]
Get the number of elements in the heap.
Returns: the number of elements in the heap.
void pop ()
| pop |
Remove the object top of the heap.
void pop_obj (HeapBase *p)
| pop_obj |
Remove an object from an arbitrary position in the heap.
Note: only valid if the heap supports this kind of operation.
Parameters:
p | the object to remove if not NULL, otherwise the top element from the heap. |
void heapify ()
| heapify |
void print ()
|
void print_all (int)
| print_all |