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

Heap de nodos sin destructor virtual. Más...

Diagrama de herencias de BinHeap

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

Collaboration graph
[leyenda]

Lista de todos los miembros.

Tipos públicos

typedef BinHeapNode< Key > Node
 El tipo de nodo del heap.

Métodos públicos

NodegetMin () throw (std::exception, std::underflow_error)
 Elimina del heap el nodo de menor prioridad.
Nodeinsert (Node *p)
 Inserta un nodo en un heap.
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.
Nodetop () const throw (std::exception, std::underflow_error)
 Retorna el nodo con menor prioridad según el criterio de comparación especificado en la declaración.
void update (Node *p)
 Actualiza prioridad de un nodo contenido en el heap.


Descripción detallada

template<class Key, typename Compare = Aleph::less<Key>>
class Aleph::BinHeap< Key, Compare >

La clase BinHeap 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.

Parámetros:
Key la clave que guarda cada nodo.
Compare el criterio de comparación entre las claves de los nodos; por omisión es la relación "menor que".
Ver también:
BinHeapVtl DynBinHeap

Definición en la línea 724 del archivo tpl_binHeap.H.


Documentación de las funciones miembro

Node* getMin (  )  throw (std::exception, std::underflow_error) [inline, inherited]

getMIn() extrae del heap this el nodo que contenga el menor valor de prioridad según el criterio de comparación definido en la declaración.

Devuelve:
puntero al nodo eliminado.
Excepciones:
underflow_error si el heap está vacío.

Reimplementado en DynBinHeap.

Definición en la línea 529 del archivo tpl_binHeap.H.

Referenciado por Huffman_Encoder_Engine::generate_huffman_tree(), GenBinHeap< Aleph::BinHeapNode< Key >, T, Compare >::remove(), y GenBinHeap< Aleph::BinHeapNode< Key >, T, Compare >::remove_all_and_delete().

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().

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().


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

Leandro R. León