Tabla de contenidos
Responde a las siguientes preguntas:
Supón que se ha definido una estructura de datos
con nombre “struct hashtable
” que
representa una tabla hash como la del ejemplo. ¿Qué prototipos
crees que tendrían las funciones para buscar un valor e insertar
un par (clave, valor)?
Si la tabla de una tabla hash tiene tamaño 100, ¿qué función hash simple se te ocurre con el número de pasaporte? ¿Y en general para cualquier tamaño de tabla?
Implementación de las funciones necesarias para manipular una lista encadenada de elementos (crear, insertar, borrar, buscar, etc.)
Leer el documento “ Tablas Hash ”.
Propón una estructura de datos que contenga una tabla hash. Piensa en que esa estructura es la que se manejará en toda la aplicación, esto es, se creará con una función que escribes tú, y se recibirá como parámetro en las funciones de buscar, añadir, borrar, etc.
Escribe la función para crear una tabla hash. Decide qué parámetros necesita recibir.
Escribe la función que dada una tabla hash y una clave,
busca si tal clave existe. Devuelve el valor asociado a esa clave o
NULL
en caso contrario.
Escribe la función que dada una tabla hash, una clave y un valor, añade el par (clave, valor) a la tabla. Se asume que la clave no está presente en la tabla antes de realizarse la operación.
Escribe una función que recibe una tabla hash y la destruye. Esto incluye destruir todas las lista de colisiones internas.
Modifica la estructura de la tabla para que tenga un parámetro denominado “densidad”. Cuando la densidad de la tabla supere ese valor, se debe redimensionar incrementando su tamaño un 25%. Esto debe suceder de forma transparente cuando se ejecuta una operación de inserción de un nuevo par (clave, valor).