Ejercicios Tablas de Hash

2
Tablas de Hash 1.- Se tiene una tabla de Hash cerrado parcialmente llena. Para optimizar el espacio se planea redispersar los datos a una nueva tabla con menos cubetas. Sabiendo que originalmente los datos fueron ingresados en orden alfabético y conociendo el número de colisiones existentes al llenar la tabla original, llene la nueva tabla de hash usando una función lineal. Cubetas # colisiones Cubetas 0 F 1 1 G 1 2 0 3 A 0 1 4 C 1 2 5 3 6 4 7 5 8 B 0 6 9 D 1 10 E 2 2.- Dada la siguiente tabla con hashing abierto (acepta colisiones) como quedaría la tabla si fuera un hashing cerrado(no acepta colisiones) y tiene una función rehashing lineal. Considere que el orden como fueron ingresados los elementos en sus posiciones fue alfabéticamente. Tabla Inicial (hashing abierto)

description

ejercicios resueltos sobre tablas de hash en C

Transcript of Ejercicios Tablas de Hash

  • Tablas de Hash1.- Se tiene una tabla de Hash cerrado parcialmente llena. Para optimizar el espacio se planea redispersarlos datos a una nueva tabla con menos cubetas. Sabiendo que originalmente los datos fueron ingresadosen orden alfabtico y conociendo el nmero de colisiones existentes al llenar la tabla original, llene lanueva tabla de hash usando una funcin lineal.

    Cubetas # colisiones Cubetas0 F 1

    1 G 1

    2 0

    3 A 0 1

    4 C 1 2

    5 3

    6 4

    7 5

    8 B 0 6

    9 D 1

    10 E 2

    2.- Dada la siguiente tabla con hashing abierto (acepta colisiones) como quedara la tabla si fuera unhashing cerrado(no acepta colisiones) y tiene una funcin rehashing lineal. Considere que el orden comofueron ingresados los elementos en sus posiciones fue alfabticamente.

    Tabla Inicial (hashing abierto)

  • 3.- Considere las asociaciones entre los siete valores y las siete claves mostrados en la tabla.

    Clave Valor24 E48 B32 D66 A22 F40 C49 G

    Asuma un escenario donde se desea insertar estos valores en el orden mostrado, del 1 al 7, en una tablade Hash, de tamao 7, que utilizan aritmtica modular como funcin de dispersin. Escriba el valor que almacenarn las cubetas de cada una de las tablas de Hash que resultan de aplicar lassiguientes estrategias de re-dispersin o re-hashing:

    EstrategiaCubetas

    0 1 2 3 4 5 6

    Re-hashing Lineal

    Re-hashing con doblefuncinh' ( x)=(2 x3)mod B

    4.- Una universidad desea generar unos talleres especiales con una cantidad fija de estudiantes(30). A losparticipantes se les asigna una identificacin unicamente para el taller y correspondiente al orden deinscripcin. a) Defina:El TDA estudiante que contenga las calificaciones ponderadas que se obtendrn durante el taller. Agreguetodos los campos que considere necesarios.El TDA Taller que almacenara al conjunto de estudiantes inscritos.b) Ahora proponga 2 TDA similares a los anteriores pero que cumplan con los siguientes nuevos requisitos:- Se debe de poder buscar al estudiante por su numero de matricula (previamente asignado) Esta operacin debe ser altamente eficiente y de tiempo constante.- La cantidad de estudiantes puede variar entre 20 y 30 estudiantes.

    5.-A partir del TDA HashMap de la librera del curso: a) Disear e implementar la versin del TDA con hashing abierto.b) Se define el ndice radial de una Tabla Hash abierta como el nmero de cubetas de la tablamultiplicado por el nmero de elementos de la lista enlazada con mayor tamao de todas. Disear unalgoritmo adecuado para calcular tal ndice radial.

    6.- Se dispone de una aplicacin de radares de trfico que permite llevar la contabilidad del nmero deveces que ha pasado un determinado coche por dicho radar superando el lmite de velocidad. Para ello seconsulta un Diccionario (Diccionario) implementado mediante una Tabla Hash.Con el fin de contabilizar el nmero de veces que ha pasado un coche se requiere actualizar el Diccionariode la aplicacin. Implemente una funcin que dado el Diccionario y un numero de matricula realice elproceso de actualizacin.