Referencia de la plantilla de la Clase DynBinHeap
[Árboles con raíz]

Heap dinámico de elementos de tipo genérico T con criterio de comparación Compare. Más...

Diagrama de herencias de DynBinHeap

Inheritance graph
[leyenda]
Diagrama de colaboración para DynBinHeap:

Collaboration graph
[leyenda]

Lista de todos los miembros.

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.
getMin () throw (std::exception, std::underflow_error)
 Elimina el menor elemento de un heap dinámico y retorna una copia.
Nodeinsert (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.
Noderemove (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.


Descripción detallada

template<class T, class Compare = Aleph::less<T>>
class Aleph::DynBinHeap< T, 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)

Definición en la línea 66 del archivo tpl_dynBinHeap.H.


Documentación de las funciones miembro

T getMin (  )  throw (std::exception, std::underflow_error) [inline]

Devuelve:
una copia del elemento eliminado
Excepciones:
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.

Parámetros:
[in] p el nodo a insertar.
Devuelve:
puntero al nodo insertado.

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.

Parámetros:
[in] item elemento a insertar en el heap.
Devuelve:
una referencia modificable al elemento copiado e insertado en el heap.
Excepciones:
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.

Parámetros:
[in] node puntero al nodo a eliminar.
Excepciones:
underflow_error si el heap está vacío
Devuelve:
puntero al nodo eliminado
Nota:
No se verifica si node pertenece al heap.

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.

Parámetros:
[in] p puntero al nodo que se desea actualizar
Ver también:
insert()

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.

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.

Definición en la línea 119 del archivo tpl_dynBinHeap.H.


La documentación para esta clase fue generada a partir del siguiente fichero:

Leandro R. León