Tipos públicos | |
typedef BinHeapNode< T > | Node |
El tipo de nodo del heap. | |
Métodos públicos | |
void | empty () |
Vacía todos los elementos del heap dinámico. | |
T | getMin () throw (std::exception, std::underflow_error) |
Elimina el menor elemento de un heap dinámico y retorna una copia. | |
Node * | insert (Node *p) |
Inserta un nodo en un heap. | |
T & | insert (const T &item) throw (std::exception, std::bad_alloc) |
Inserta en el heap una copia de item. | |
bool | is_empty () const |
Retorna true si el heap está vacío. | |
Node * | remove (Node *node) throw (std::exception, std::underflow_error) |
Elimina del heap el nodo node. | |
void | remove_all_and_delete () |
Borra todos los nodos del heap, invoca a los destructores de los nodos eliminados y libera toda la memoria. | |
const size_t & | size () const |
Retorna la cardinalidad del heap. | |
T & | top () const throw (std::exception, std::underflow_error) |
Retorna una referencia modificable al menor elemento dentro del heap dinámico según el orden determinado por el criterio de comparación dado en la declaración. | |
void | update (Node *p) |
Actualiza prioridad de un nodo contenido en el heap. | |
void | update (T &data) |
Actualiza una prioridad en el heap. | |
~DynBinHeap () | |
Destructor. |
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.
Definición en la línea 66 del archivo tpl_dynBinHeap.H.
T getMin | ( | ) | throw (std::exception, std::underflow_error) [inline] |
underflow_error | si el heap está vacío. |
Reimplementado de GenBinHeap.
Definición en la línea 95 del archivo tpl_dynBinHeap.H.
Referenciado por priority_queue::pop().
Node* insert | ( | Node * | p | ) | [inline, inherited] |
insert(p) inserta en el heap this el nodo p.
[in] | p | el nodo a insertar. |
Definición en la línea 465 del archivo tpl_binHeap.H.
Referenciado por Huffman_Encoder_Engine::generate_huffman_tree(), GenBinHeap< Aleph::BinHeapNode< Key >, T, Compare >::remove(), Huffman_Encoder_Engine::set_end_of_stream(), y Huffman_Encoder_Engine::set_freq().
T& insert | ( | const T & | item | ) | throw (std::exception, std::bad_alloc) [inline] |
Inserta una copia de item en el heap dinámico.
[in] | item | elemento a insertar en el heap. |
bad_alloc | si no hay suficiente memoria. |
Definición en la línea 79 del archivo tpl_dynBinHeap.H.
Referenciado por priority_queue::priority_queue(), y priority_queue::push().
Node* remove | ( | Node * | node | ) | throw (std::exception, std::underflow_error) [inline, inherited] |
remove(node) elimina del heap el nodo node.
[in] | node | puntero al nodo a eliminar. |
underflow_error | si el heap está vacío |
Definición en la línea 582 del archivo tpl_binHeap.H.
void update | ( | Node * | p | ) | [inline, inherited] |
update(p) toma un nodo del heap cuya priorodad 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.
[in] | p | puntero al nodo que se desea actualizar |
Definición en la línea 568 del archivo tpl_binHeap.H.
Referenciado por GenBinHeap< Aleph::BinHeapNode< Key >, T, Compare >::remove().
void update | ( | T & | data | ) | [inline] |
update(data) toma una referencia a un elemento del heap, cuya prioridad ha sido presumiblemente modificada, y actualiza su posición en el heap.
[in] | data | referencia modificable a un elemento dentro del heap. |
Definición en la línea 119 del archivo tpl_dynBinHeap.H.