This class provides an implementation of an updatable min-heap. Using it is a bit cumbersome, as it requires keeping track of the BinaryHeap::Element* type, however, it should be as fast as it gets with an updatable heap. More...
#include <BinaryHeap.h>
Classes | |
| class | Element |
| When an element is added to the heap, an instance of Element* is created. This instance contains the data that was added and internal information about the position of the data in the heap's internal storage. More... | |
Public Types | |
| typedef void(* | EventAfterInsert )(Element *, void *) |
| Event that gets called after an insertion. | |
| typedef void(* | EventBeforeRemove )(Element *, void *) |
| Event that gets called just before a removal. | |
Public Member Functions | |
| BinaryHeap (void) | |
| void | buildFrom (const std::vector< _T > &list) |
| Clear the heap, add the set of elements list to it and rebuild it. | |
| void | clear (void) |
| Clear the heap. | |
| bool | empty (void) const |
| Check if the heap is empty. | |
| void | getContent (std::vector< _T > &content) const |
| Get the data stored in this heap. | |
| void | insert (const std::vector< _T > &list) |
| Add a set of elements to the heap. | |
| Element * | insert (const _T &data) |
| Add a new element. | |
| void | onAfterInsert (EventAfterInsert event, void *arg) |
| Set the event that gets called after insertion. | |
| void | onBeforeRemove (EventBeforeRemove event, void *arg) |
| Set the event that gets called before a removal. | |
| void | pop (void) |
| Remove the top element. | |
| void | rebuild (void) |
| Rebuild the heap. | |
| void | remove (Element *element) |
| Remove a specific element. | |
| unsigned int | size (void) const |
| Get the number of elements in the heap. | |
| void | sort (std::vector< _T > &list) |
| Sort an array of elements. This does not affect the content of the heap. | |
| Element * | top (void) const |
| Return the top element. NULL for an empty heap. | |
| void | update (Element *element) |
| Update an element in the heap. | |
| ~BinaryHeap (void) | |
Private Member Functions | |
| void | build (void) |
| Element * | newElement (_T &data, unsigned int pos) const |
| void | percolateDown (const unsigned int pos) |
| void | percolateUp (const unsigned int pos) |
| void | removePos (unsigned int pos) |
Private Attributes | |
| EventAfterInsert | eventAfterInsert_ |
| void * | eventAfterInsertData_ |
| EventBeforeRemove | eventBeforeRemove_ |
| void * | eventBeforeRemoveData_ |
| LessThan | lt_ |
| std::vector< Element * > | vector_ |
This class provides an implementation of an updatable min-heap. Using it is a bit cumbersome, as it requires keeping track of the BinaryHeap::Element* type, however, it should be as fast as it gets with an updatable heap.
Definition at line 53 of file BinaryHeap.h.
| typedef void(* ompl::BinaryHeap< _T, LessThan >::EventAfterInsert)(Element *, void *) |
Event that gets called after an insertion.
Definition at line 73 of file BinaryHeap.h.
| typedef void(* ompl::BinaryHeap< _T, LessThan >::EventBeforeRemove)(Element *, void *) |
Event that gets called just before a removal.
Definition at line 76 of file BinaryHeap.h.
| ompl::BinaryHeap< _T, LessThan >::BinaryHeap | ( | void | ) | [inline] |
Definition at line 78 of file BinaryHeap.h.
| ompl::BinaryHeap< _T, LessThan >::~BinaryHeap | ( | void | ) | [inline] |
Definition at line 84 of file BinaryHeap.h.
| void ompl::BinaryHeap< _T, LessThan >::build | ( | void | ) | [inline, private] |
Definition at line 261 of file BinaryHeap.h.
| void ompl::BinaryHeap< _T, LessThan >::buildFrom | ( | const std::vector< _T > & | list | ) | [inline] |
Clear the heap, add the set of elements list to it and rebuild it.
Definition at line 163 of file BinaryHeap.h.
| void ompl::BinaryHeap< _T, LessThan >::clear | ( | void | ) | [inline] |
Clear the heap.
Definition at line 104 of file BinaryHeap.h.
| bool ompl::BinaryHeap< _T, LessThan >::empty | ( | void | ) | const [inline] |
Check if the heap is empty.
Definition at line 188 of file BinaryHeap.h.
| void ompl::BinaryHeap< _T, LessThan >::getContent | ( | std::vector< _T > & | content | ) | const [inline] |
Get the data stored in this heap.
Definition at line 200 of file BinaryHeap.h.
| void ompl::BinaryHeap< _T, LessThan >::insert | ( | const std::vector< _T > & | list | ) | [inline] |
Add a set of elements to the heap.
Definition at line 147 of file BinaryHeap.h.
| Element* ompl::BinaryHeap< _T, LessThan >::insert | ( | const _T & | data | ) | [inline] |
Add a new element.
Definition at line 133 of file BinaryHeap.h.
| Element* ompl::BinaryHeap< _T, LessThan >::newElement | ( | _T & | data, | |
| unsigned int | pos | |||
| ) | const [inline, private] |
Definition at line 253 of file BinaryHeap.h.
| void ompl::BinaryHeap< _T, LessThan >::onAfterInsert | ( | EventAfterInsert | event, | |
| void * | arg | |||
| ) | [inline] |
Set the event that gets called after insertion.
Definition at line 90 of file BinaryHeap.h.
| void ompl::BinaryHeap< _T, LessThan >::onBeforeRemove | ( | EventBeforeRemove | event, | |
| void * | arg | |||
| ) | [inline] |
Set the event that gets called before a removal.
Definition at line 97 of file BinaryHeap.h.
| void ompl::BinaryHeap< _T, LessThan >::percolateDown | ( | const unsigned int | pos | ) | [inline, private] |
Definition at line 267 of file BinaryHeap.h.
| void ompl::BinaryHeap< _T, LessThan >::percolateUp | ( | const unsigned int | pos | ) | [inline, private] |
Definition at line 304 of file BinaryHeap.h.
| void ompl::BinaryHeap< _T, LessThan >::pop | ( | void | ) | [inline] |
Remove the top element.
Definition at line 119 of file BinaryHeap.h.
| void ompl::BinaryHeap< _T, LessThan >::rebuild | ( | void | ) | [inline] |
Rebuild the heap.
Definition at line 173 of file BinaryHeap.h.
| void ompl::BinaryHeap< _T, LessThan >::remove | ( | Element * | element | ) | [inline] |
Remove a specific element.
Definition at line 125 of file BinaryHeap.h.
| void ompl::BinaryHeap< _T, LessThan >::removePos | ( | unsigned int | pos | ) | [inline, private] |
Definition at line 238 of file BinaryHeap.h.
| unsigned int ompl::BinaryHeap< _T, LessThan >::size | ( | void | ) | const [inline] |
Get the number of elements in the heap.
Definition at line 194 of file BinaryHeap.h.
| void ompl::BinaryHeap< _T, LessThan >::sort | ( | std::vector< _T > & | list | ) | [inline] |
Sort an array of elements. This does not affect the content of the heap.
Definition at line 208 of file BinaryHeap.h.
| Element* ompl::BinaryHeap< _T, LessThan >::top | ( | void | ) | const [inline] |
Return the top element. NULL for an empty heap.
Definition at line 113 of file BinaryHeap.h.
| void ompl::BinaryHeap< _T, LessThan >::update | ( | Element * | element | ) | [inline] |
Update an element in the heap.
Definition at line 179 of file BinaryHeap.h.
EventAfterInsert ompl::BinaryHeap< _T, LessThan >::eventAfterInsert_ [private] |
Definition at line 233 of file BinaryHeap.h.
void* ompl::BinaryHeap< _T, LessThan >::eventAfterInsertData_ [private] |
Definition at line 234 of file BinaryHeap.h.
EventBeforeRemove ompl::BinaryHeap< _T, LessThan >::eventBeforeRemove_ [private] |
Definition at line 235 of file BinaryHeap.h.
void* ompl::BinaryHeap< _T, LessThan >::eventBeforeRemoveData_ [private] |
Definition at line 236 of file BinaryHeap.h.
LessThan ompl::BinaryHeap< _T, LessThan >::lt_ [private] |
Definition at line 229 of file BinaryHeap.h.
std::vector<Element*> ompl::BinaryHeap< _T, LessThan >::vector_ [private] |
Definition at line 231 of file BinaryHeap.h.