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

Heap genérico de nodos. Más...

Diagrama de herencias de GenBinHeap

Inheritance graph
[leyenda]

Lista de todos los miembros.

Métodos públicos

Node * getMin () throw (std::exception, std::underflow_error)
 Elimina del heap el nodo de menor prioridad.
Node * insert (Node *p)
 Inserta un nodo en un heap.
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.
Node * top () 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<template< class > class NodeType, typename Key, class Compare = Aleph::less<Key>>
class Aleph::GenBinHeap< NodeType, Key, Compare >

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

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


Documentación de las funciones miembro

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

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]

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]

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]

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