Aleph-w  1.5a.2
Biblioteca general de algoritmos y estructuras de datos
 Todo Clases Archivos Funciones Variables 'typedefs' Enumeraciones Amigas Grupos Páginas
Referencia de la plantilla de la Estructura Aleph::LinearHashTable< Key, Cmp >

#include <tpl_linHash.H>

+ Diagrama de herencias de Aleph::LinearHashTable< Key, Cmp >
+ Diagrama de colaboración para Aleph::LinearHashTable< Key, Cmp >:

Tipos públicos

typedef GenLinearHashTable
< Key, LinHashBucket, Cmp > 
Base
 
- Tipos públicos heredados desde Aleph::GenLinearHashTable< Key, LinHashBucket, Cmp >
typedef size_t(* Hash_Fct )(const Key &)
 
typedef LinHashBucket< Key > Bucket
 El tipo de cubeta.
 
typedef Key Key_Type
 
typedef Key Item_Type
 

Otros miembros heredados

- Métodos públicos heredados desde Aleph::GenLinearHashTable< Key, LinHashBucket, Cmp >
void set_hash_fct (Hash_Fct fct)
 Set the internal hash function.
 
Hash_Fct get_hash_fct () const
 
const Cmp & get_compare () const
 
float current_alpha () const
 return the current table load
 
 GenLinearHashTable (Hash_Fct __hash_fct=Aleph::dft_hash_fct< Key >, const size_t &__len=Primes::DefaultPrime, const float &__lower_alpha=hash_default_lower_alpha, const float &__upper_alpha=hash_default_upper_alpha, const bool __remove_all_buckets=true, const bool __with_resize=true) throw (std::exception, std::length_error, std::domain_error, std::bad_alloc, std::overflow_error)
 
void swap (GenLinearHashTable &other)
 
void empty ()
 
Bucketsearch (const Key &key) const
 
const size_t & size () const
 Retorna la cantidad de elementos que tiene la tabla.
 
bool is_empty () const
 return true is table is empty
 
const size_t & capacity () const
 Retorna el tamaño de la tabla.
 
const size_t & busy_slots () const
 Retorna la cantidad de entradas vacía que tiene la tabla.
 
const size_t & expansions () const
 
Bucketinsert (Bucket *bucket)
 
size_t resize (size_t)
 Provided for generic programming compatibility.
 
Bucketremove (Bucket *bucket)
 
void print ()
 
 HASH_STATS ()
 
- Atributos protegidos heredados desde Aleph::GenLinearHashTable< Key, LinHashBucket, Cmp >
Hash_Fct hash_fct
 
float upper_alpha
 
float lower_alpha
 
size_t len
 

Descripción detallada

template<typename Key, class Cmp = Aleph::equal_to<Key>>
struct Aleph::LinearHashTable< Key, Cmp >

Tabla hash lineal con cubetas sin destructor virtual.

Básicamente, una tabla hash lineal es una tabla hash con resolución de colisiones por encadenamiento separado pero con la diferencia de que el tamaño de la tabla aumenta dinámicamente para asegurar que el factor de carga, típicamente llamado $\alpha$, esté delimitado entre dos valores inferior y superior, respectivamente.

Internamente, la tabla utiliza un arreglo dinámico del tipo DynArray. Esto conlleva ahorros de memoria por entradas de la tabla que no hayan sido escritas.

Parámetros
Keyel tipo de clave por el cual se indiza la tabla.
Cmpclase de comparación entre las claves.
Ver también
DynArray LinearHashTableVtl

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

Leandro Rabindranath León