Laboratorio de hashing y memoria en C

Tabla Hash

Acerca de esta estructura

Tabla hash de capacidad fija con claves/valores enteros y encadenamiento separado.

Abrir guía del módulo

1 Preparar y controlar ejecución

Configura la llamada C y elige si deseas completarla o recorrer sus instrucciones.

Paso: 0/0

Sin traza cargada.

Tabla hash

Opciones de representación

Memoria C actual Identidades simbólicas; no son direcciones reales.

Prepara una traza para observar la memoria C.

3 Relacionar con código

Código C

Codigo C no disponible para esta operacion en docs/tads_C/tad_tabla_hash.c.
4 Comprender Fórmula, cadena, punteros, costo y memoria del paso activo
Prepara una operación para observar índice, cadena, punteros y memoria.

Función hash

Sin frame.

Cadena activa

Sin cadena.

Variables y punteros

Sin punteros.

Costo observado

Sin medición.

Memoria

Los identificadores de memoria son simbólicos, no direcciones reales.

Sin transición.

Invariante

Sin verificación.
5 Resultados de ejecución Consola C, historial y estructura del TAD
Descargar main.c

Consola C (printf)

Historial C17

    Estructura del TAD

    typedef struct th_nodo {
        int clave; /**< Clave entera del elemento. */
        int valor; /**< Dato almacenado. */
        struct th_nodo *siguiente; /**< Enlace al siguiente nodo del bucket. */
    } THNodo;
    
    typedef struct {
        THNodo **buckets; /**< Arreglo de cabezas de cadenas de colisión. */
        int capacidad; /**< Capacidad reservada de la estructura. */
        int cantidad; /**< Número de elementos almacenados. */
    } TablaHash;
    
    typedef struct {
        int capacidad; /**< Capacidad reservada de la estructura. */
        int cantidad; /**< Número de elementos almacenados. */
        int buckets_ocupados; /**< Número de buckets con al menos un nodo. */
        int colisiones; /**< Elementos que exceden el primer nodo de cada bucket ocupado. */
        float factor_carga; /**< Cociente float de metadata cantidad/capacidad en tabla utilizable; cero en salida vacia de error. */
    } THEstadisticas;