#include <soft_heap.hh>

Public Types | |
| typedef T | element |
| Element associated type. | |
Public Member Functions | |
| void | clear () |
| Clear the heap. | |
| bool | is_empty () const |
| Return true if there is at least one element. | |
| bool | is_valid () const |
| Return true if there is at least one element. | |
| int | nelements () const |
| Return the number of element in the heap. | |
| T | pop_front () |
| Returns the element with the lowest priority and remove it from the heap. | |
| void | push (soft_heap< T, R > &sh) |
Merge sh with this heap. | |
| void | push (const T &element) |
Add a new element element. | |
| soft_heap (unsigned r=20) | |
| Default constructor. | |
| ~soft_heap () | |
| Destructor. | |
T key, the data to store in the heap. For instance a point 2d. R rank, for instance int_u8
| typedef T mln::util::soft_heap< T, R >::element |
Element associated type.
| mln::util::soft_heap< T, R >::soft_heap | ( | unsigned | r = 20 |
) | [inline] |
Default constructor.
A corruption threshold r can be specified. This threshold means that if nodes have a rank higher than this threshold they can be "corrupted" and therefore their rank can be reduced.
| mln::util::soft_heap< T, R >::~soft_heap | ( | ) | [inline] |
| void mln::util::soft_heap< T, R >::clear | ( | ) | [inline] |
Clear the heap.
References mln::util::head< T, R >::next(), mln::util::head< T, R >::queue(), mln::util::head< T, R >::set_next(), and mln::util::head< T, R >::set_prev().
| bool mln::util::soft_heap< T, R >::is_empty | ( | ) | const [inline] |
Return true if there is at least one element.
| bool mln::util::soft_heap< T, R >::is_valid | ( | ) | const [inline] |
Return true if there is at least one element.
Referenced by mln::util::soft_heap< T, R >::pop_front().
| int mln::util::soft_heap< T, R >::nelements | ( | ) | const [inline] |
| T mln::util::soft_heap< T, R >::pop_front | ( | ) | [inline] |
Returns the element with the lowest priority and remove it from the heap.
References mln::util::soft_heap< T, R >::is_valid(), mln::util::head< T, R >::next(), mln::util::node< T, R >::next(), mln::util::head< T, R >::prev(), mln::util::head< T, R >::queue(), and mln::util::head< T, R >::set_queue().
| void mln::util::soft_heap< T, R >::push | ( | soft_heap< T, R > & | sh | ) | [inline] |
Merge sh with this heap.
Be ware that after this call, sh will be empty. This heap will hold the elements which were part of sh.
References mln::util::soft_heap< T, R >::nelements(), mln::util::head< T, R >::next(), and mln::util::head< T, R >::queue().
| void mln::util::soft_heap< T, R >::push | ( | const T & | element | ) | [inline] |
Add a new element element.
1.5.6