|
Compare & | key_comp () |
|
Compare & | get_compare () |
|
void | swap (GenBinHeap &h) |
|
Node * | getRoot () |
|
Node * | getRoot () const |
|
template<class Op > |
void | for_each_in_preorder (Node *p, Op &op) |
|
template<class Op > |
void | for_each_in_preorder (Node *p, Op &&op()) |
|
template<class Op > |
bool | level_traverse (Node *root, Op &operation) |
|
template<class Op > |
bool | level_traverse (Node *root, Op &&operation=Op()) |
|
template<class Op > |
bool | level_traverse (Node *root, Op &operation) const |
|
template<class Op > |
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<template< class > class NodeType, typename Key, class Compare = Aleph::less<Key>>
class Aleph::GenBinHeap< NodeType, Key, Compare >
Heap genérico de nodos.
La clase GenBinHeap instrumenta un heap de nodos. Este heap no está implementado mediante un arreglo, sino con un árbol binario. Esto proporciona la gran ventaja de ser altamente dinámico. La memoria empleada es pues proporcional a la cantidad de nodos del heap.
Esta clase no está destinada a uso público. Su fin es proveer la funcionalidad básica a las clases BinHeap, BinHeapVtl y DynBinHeap.
- Parámetros
-
NodeType | el tipo de nodo que usa el heap; éste será con o sin destructor virtual. |
Key | la clave que guarda cada nodo. |
Compare | el criterio de comparación entre las claves de los nodos. |
- Ver también
- BinHeap BinHeapVtl DynBinHeap
template<template< class > class NodeType, typename Key, class Compare = Aleph::less<Key>>
Node* Aleph::GenBinHeap< NodeType, Key, Compare >::getMin |
( |
| ) |
|
throw | ( | std::exception, |
| | std::underflow_error |
| ) | | |
|
inline |
template<template< class > class NodeType, typename Key, class Compare = Aleph::less<Key>>
Actualiza prioridad de un nodo contenido en el heap.
update(p) toma un nodo del heap cuya prioridad haya sido modificada y actualiza su prioridad dentro del heap. La idea es que si por alguna razón una prioridad debe ser modificada, entonces el orden de extracción pueda actualizarse.
- Parámetros
-
[in] | p | puntero al nodo que se desea actualizar |
- Ver también
- insert()
Referenciado por Aleph::GenBinHeap< BinHeapNodeVtl, Key, Compare >::remove().