Referencia de la plantilla de la Clase DynLinearHashTable
[Tablas hash]

Mapeo dinámico Key --> Data instrumentado mediante una tabla hash lineal dinámica. Más...

Diagrama de herencias de DynLinearHashTable

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

Collaboration graph
[leyenda]

Lista de todos los miembros.

Tipos públicos

typedef GenLinearHashTable
< Key, LhashBucket,
Aleph::equal_to< Key >
>::Bucket 
Bucket
 El tipo de cubeta que maneja la tabla.
typedef LinearHashTable< Key >
::Hash_Fct 
Hash_Fct
 El tipo de función hash.

Métodos públicos

const size_t & busy_slots () const
 Retorna la cantidad de entradas vacía que tiene la tabla.
const size_t & capacity () const
 Retorna el tamaño de la tabla.
 DynLinearHashTable (Hash_Fct hash_fct, const size_t &len=DefaultPrime, const float &lower_alpha=0.5, const float &upper_alpha=0.8)
 Instancia una tabla hash lineal dinámica.
void empty ()
 Vacía toda la tabla. Todas las cubetas son liberadas y el tamaño es ajustado al inicial.
const size_t & expansions () const
 Retorna el nivel de expansiones que se han realizado sobre la tabla.
Bucketinsert (Bucket *bucket)
 Inserta la cubeta bucket en la tabla hash lineal.
Data * insert (const Key &key, const Data &record) throw (std::exception, std::bad_alloc)
 Inserta en el mapeo hash el par (key,record) indizado por la clave key. Retorna un puntero al registro dentro de la tabla. Dispara la excepción bad_alloc si no hay suficiente memoria.
Bucketremove (Bucket *bucket)
 Elimina la cubeta bucket. Atención: no se verifica si la cubeta pertenece a la tabla.
void remove (Data *record)
 Elimina de la tabla el registro record (que debe haber sido obtenido mediante la inserción o búsqueda.
Data * search (const Key &key)
 Busca la clave key y, si se encuentra, entonces retorna un puntero dentro de la tabla al registro asociado. De lo contrario -no se encuentra la clave-, se retorna NULL:.
void set_lower_alpha (const float &__lower_alpha)
 Cambia el umbral inferior de carga en que la tabla comienza a contraerse. Dispara domain_error si el nuevo umbral es superior que el umbral superior (upper_alpha).
void set_upper_alpha (const float &__upper_alpha)
 Cambia el umbral superior de carga en que la tabla comienza a expandirse. Dispara domain_error si el nuevo umbral es inferior que el umbral inferior (lower_alpha).
const size_t & size () const
 Retorna la cantidad de elementos que tiene la tabla.

Atributos públicos estáticos

static const float default_lower_alpha
 valor por omisión del umbral inferior de carga.
static const float default_upper_alpha
 valor por omisión del umbral superior de carga.


Descripción detallada

template<typename Key, typename Data>
class Aleph::DynLinearHashTable< Key, Data >

DynLinearHashTable<Key,Data> instrumenta una tabla hash lineal y dinámica en la cual no es necesario preocuparse por el tamaño; éste es automáticamente ajustado según unos límites al factor de carga definidos en tiempo de construcción.

Parámetros:
Key el tipo de dato del dominio según el cual se indiza el rango.
Data el tipo de datos de los elementos del rango.
Ver también:
LinearHashTable

Definición en la línea 69 del archivo tpl_dynLinHash.H.


Documentación del constructor y destructor

DynLinearHashTable ( Hash_Fct  hash_fct,
const size_t &  len = DefaultPrime,
const float &  lower_alpha = 0.5,
const float &  upper_alpha = 0.8 
) [inline]

Parámetros:
[in] hash_fct la función hash.
[in] len tamaño inicial y mínimo de la tabla hash. El tamaño nunca será más bajo que el este.
[in] lower_alpha umbral inferior de carga; tamaño de la tabla se reducirá si la carga es inferior a este factor.
[in] upper_alpha umbral superior de carga; tamaño de la tabla se expandirá si la carga es superior a este factor.

Definición en la línea 96 del archivo tpl_dynLinHash.H.


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

Leandro R. León