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. | |
Bucket * | insert (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. | |
Bucket * | remove (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. |
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. |
Definición en la línea 69 del archivo tpl_dynLinHash.H.
DynLinearHashTable | ( | Hash_Fct | hash_fct, | |
const size_t & | len = DefaultPrime , |
|||
const float & | lower_alpha = 0.5 , |
|||
const float & | upper_alpha = 0.8 | |||
) | [inline] |
[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.