Las Tablas Hash son de uso frecuente en la actualidad, sobretodo en el area de Almacenamiento y Recuperación de la Información.
En esta tarea decidimos hacer un énfasis en que los dispositivos de memoria y de almacenamientos son limitados, por lo que empleamos tablas Hash con cierto tamaña restringido ocasionando así mas colisiones al momento de Inserción y planteando mas dificultad al momento de busqueda, también colocamos una función que transforma los strings en claves simple, lo que ocasiona posibles claves repetidas. Al igual procedemos a colococar en forma aleatoria los string en la tabla hash.
Todo el manejo dentro de la tabla Hash es en base de Strings, es decir, recuperamos la secuencia de string del archivo plano, y luego se hacen funciones en Base de ASCII para calcular las claves y los indices.
Existen diferentes metodos de utilizar tablas hash, este programa toma como entrada por defecto una lista de palabras ordenadas en orden alfabético (la cual se encuentra en el archivo wors.txt) y procede a insertarlas a una tabla Hash por diferente métodos. El usuario del programa observará como resultado final para cada método los gráficos equivalentes a la Cantidad Promedio de Intentos de Inserciones Vs. Factor de Carga y Cantidad Promedio de Intentos de Busqueda Vs. Factor de Carga.
# make
Este programa entrega gráfico para los dos métodos, permite seleccionar si se desea utlizir el método de diagrama de Hash Multiplicativo y/o Lineal de la siguiente forma
#./diagrama 1 //Para ver Gráficos con Método de Hash Multiplicativo.
#./diagrama 2 //Para ver Gráficos con Método de Hash Lineal.
#./diagrama 1 2 //Para ver Gráficos con ambos Métodos.
Para limpiar parametros del Programa:
# make clean //Elimina *.o
# make data //Elimina *.DAT
# make gnu //Elimina *.gnu
NOTA: Cada Archivo y Código esta fuertemenete comentado para mejor entendimiento del Corrector. Las pruebas se realizaron con el archivo words.txt el cual es coherente con el tamaño limitado de nuestra tabla hash.