|
| DynBinHeap (Compare &cmp) |
|
| DynBinHeap (Compare &&cmp=Compare()) |
|
| DynBinHeap (const DynBinHeap &h) |
|
| DynBinHeap (DynBinHeap &&h) |
|
DynBinHeap & | operator= (const DynBinHeap &h) |
|
DynBinHeap & | operator= (DynBinHeap &&h) |
|
T & | insert (const T &item) throw (std::exception, std::bad_alloc) |
|
T & | insert (T &&item) throw (std::exception, std::bad_alloc) |
|
T & | put (const T &item) throw (std::exception, std::bad_alloc) |
|
T & | put (T &&item) throw (std::exception, std::bad_alloc) |
|
T | getMin () throw (std::exception, std::underflow_error) |
|
T | getMax () throw (std::exception, std::underflow_error) |
|
T | get () throw (std::exception, std::underflow_error) |
|
void | update (T &data) |
|
void | remove (T &data) |
|
void | erase (T &data) |
| Sinónimo de remove.
|
|
T & | top () const throw (std::exception, std::underflow_error) |
|
void | empty () |
| Vacía todos los elementos del heap dinámico.
|
|
| ~DynBinHeap () |
| Destructor.
|
|
template<class Operation > |
bool | traverse (Operation &op) |
|
template<class Operation > |
bool | traverse (Operation &&op=Operation()) |
|
template<class Operation > |
bool | traverse (Operation &op) const |
|
template<class Operation > |
bool | traverse (Operation &&op=Operation()) const |
|
| Functional_Methods (T) |
|
Compare & | key_comp () |
|
Compare & | get_compare () |
|
void | swap (GenBinHeap &h) |
|
Node * | getRoot () |
|
Node * | getRoot () const |
|
void | for_each_in_preorder (Node *p, Op &op) |
|
void | for_each_in_preorder (Node *p, Op &&op()) |
|
bool | level_traverse (Node *root, Op &operation) |
|
bool | level_traverse (Node *root, Op &&operation=Op()) |
|
bool | level_traverse (Node *root, Op &operation) const |
|
bool | level_traverse (Node *root, Op &&operation=Op()) const |
|
| GenBinHeap (Compare &__cmp) |
|
| GenBinHeap (Compare &&__cmp=Compare()) |
|
Node * | insert (Node *p) |
|
Node * | getMin () throw (std::exception, std::underflow_error) |
|
Node * | getMax () throw (std::exception, std::underflow_error) |
|
void | update (Node *p) |
|
Node * | remove (Node *node) throw (std::exception, std::underflow_error) |
|
void | remove_all_and_delete () |
|
Node * | top () const throw (std::exception, std::underflow_error) |
|
const size_t & | size () const |
| Retorna la cardinalidad del heap.
|
|
bool | is_empty () const |
| Retorna true si el heap está vacío.
|
|
bool | verify_heap () |
|
template<class T, class Compare = Aleph::less<T>>
class Aleph::DynBinHeap< T, Compare >
Heap dinámico de elementos de tipo genérico T con criterio de comparación Compare.
DynBinHeap instrumenta un heap dinámico de elementos de tipo T ordenados según criterio de comparación Compare()().
Por dinámico se entiende que el heap puede crecer o disminuir en función de los recursos. Dicho de otro modo, no está supeditado por el uso de un arreglo interno.
- Autor
- Leandro Rabindranath León (lrleon en ula punto ve)
template<class T, class Compare = Aleph::less<T>>
Elimina un elemento arbitrario del heap.
remove(data) elimina un elemento cualquiera que esté dentro del heap.
data debe pertenecer al heap.
Esta operación es útil cuando de alguna manera, según la aplicación, el elemento data pierda vigencia dentro del heap. Por ejemplo, la cancelación de un evento.
- Parámetros
-
data | el elemento a eliminar. |
- Nota
- Resultados inesperados si data no pertenece al heap.
template<class T, class Compare = Aleph::less<T>>
Actualiza una prioridad en el heap.
update(data) toma una referencia a un elemento del heap, cuya prioridad ha sido presumiblemente modificada, y actualiza su posición en el heap.
- Parámetros
-
[in] | data | referencia modificable a un elemento dentro del heap. |
- Nota
- La referencia debe ser válida en el sentido de que debe tratarse de una referencia retornada por insert(). No se hacen verificaciones al respecto.