Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Deberá realizar un programa que implemente una tabla hash con capacidad para 80 posiciones.
Deberá entregar (subir) este documento en la plataforma incluyendo la información solicitada en formato PDF. (-1 punto si se sube en otro
formato)
1. Agregar aquí los pantallazos de su ambiente de desarrollo incluyendo IDE, la información del sistema y fondo del escritorio( (Windows+D)). Si
tuvo inconvenientes para conectarse al laboratorio virtual, también adjuntar los pantallazos aquí.
1. El código está compuesto de las siglas “FX-“ + correlativo + “Y”, dónde el correlativo comienza de 100 en adelante, por ejemplo:
FX-100Y, FX-101Y, FX-102Y y así sucesivamente hasta cargar todos los empleados.
2. El nombre y la edad pueden ser aleatorios.
Edad
Código (string) Nombre (String)
(int)
FX-100Y Nombre 1 20
FX-101Y Nombre 2 32
FX-102Y Nombre 3 50
etc Nombre … ..
etc Nombre … ..
iii. El campo con valores únicos que servirá de valor para ingresar los datos al árbol de búsqueda es el Código, por lo tanto,
deberá hacer una transformación (usar la función “transformaCadena” del libro) para luego poder usar la función
“dispersión” de la página 361 del libro.
b. Al iniciar el programa, debe imprimir sus datos: Número de Carnet y Nombre completo.
c. Cargar todos los registros a la tabla hash. (2pt)
i. Por cada registro que se va agregando, debe hacer una salida a la consola mostrando los siguientes datos:
1. Índice calculado por la función Hash
2. Si hay colisión, agregar un “*” al texto de índice
3. Datos del empleado: Código, nombre, edad
4. Ejemplo:
20, FX-xxaY, Codigo, Nombre, Edad
60, FX-xxxY, Codigo, Nombre, Edad
60*, FX-xxzY, Codigo, Nombre, Edad
d. Listar todos los elementos que hay en la tabla, salida a consola mostrando el índice, código, nombre, edad. (2pt)
i. 0, FX-xxxY, Nombre Y, xx
ii. 1, FX-xxaY, Nombre X, yy
iii. Si en una posición hay más de un dato (colisión), deberá mostrar los elementos de la lista de la siguiente manera
iv. Índice, Código --> Codigo2 --> Código3
0, FX-xxxY --> FX-xxyY --> FX-xxjY
1, FX-xxaY, Codigo, Nombre, Edad (sin colisión se muestra así)
2 …..
3 ….
3. Grabar un video que muestre el IDE y el programa en ejecución (5-15 segundos aproximadamente). Publicar el video en youtube o google
drive y colocar aquí el link para visualizarlo, debe asegurarse de que habilitará los permisos necesarios para ser visualizado, de lo contrario
no podrá ser calificado. (2pt)
4. https://youtu.be/F-F9XyWZw5w
5. Código fuente (copy/paste) desde su IDE. (1pt)
HASH
package tablashash;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
*
* @author OMAR ROMERO
*/
public class TablasHash {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
tablaHash t = new tablaHash();
String vCodigo;
String p;
int x = 100;
System.out.println("OMAR STUARDO ROMERO ABAD 5390-18-9822\n");
System.out.println("Cargando Registros a la tabla Hash\n");
int c = 0;
String vPoblacion;
String vDireccion;
CASA RURAL
package tablashash;
import java.io.*;
public CasaRural() {
esAlta = true;
asigna();
}
CLASE HASH
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package tablashash;
/**
*
* @author OMAR ROMERO
*/
public class tablaHash {
public tablaHash() {
tabla = new CasaRural[TAMTABLA];
for (int j = 0; j < TAMTABLA; j++) {
tabla[j] = null;
}
numElementos = 0;
factorCarga = 0.0;
}
long transformaCadena(String c) {
long d;
d = 0;
for (int j = 0; j < Math.min(10, c.length()); j++) {
d = d * 27 + (int) c.charAt(j);
}
if (d < 0) {
d = -d;
}
return d;
}