Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int dispersionTest(char *clave, int tamTabla) {
- if ((strcmp(clave, "ANA"))==0) return 7;
- if ((strcmp(clave, "JOSE"))==0) return 7;
- if ((strcmp(clave, "OLGA"))==0) return 7;
- return 6;
- }
- void testTabla(tabla_cerrada diccionario,
- int (*sol_colisiones)(int pos_inicial, int num_intento)) {
- int i, colisiones = 0, tamTabla = 11;
- char *datosTest[4]={"ANA", "JOSE", "OLGA", "LUIS", "ROSA", "IVAN", "CARLOS"};
- pos p;
- if (sol_colisiones==sol_lineal)
- printf(":::::------TABLA CERRADA LINEAL------:::::\n\n");
- else if (sol_colisiones==sol_cuadratica)
- printf(":::::----TABLA CERRADA CUADRATICA----:::::\n\n");
- inicializar_cerrada(&diccionario, tamTabla);
- for (i=0; i<6; i++)
- colisiones += insertar_cerrada(datosTest[i], "", &diccionario,
- tamTabla, dispersionTest, sol_colisiones);
- mostrar_cerrada(diccionario, tamTabla);
- printf("numero de colisiones: %u\n\n", colisiones);
- for (i=0; i<7; i++){
- p = buscar_cerrada(datosTest[i], diccionario, tamTabla,
- dispersionTest, sol_colisiones);
- if (diccionario[p].ocupada)
- printf("Al buscar: %5s, encuentro: %5s\n",
- datosTest[i], diccionario[p].clave);
- else
- printf("No encuentro: %5s\n", datosTest[i]);
- }
- printf("\n");
- }
- void tiempos(tabla_cerrada diccionario, item *datos, int ndatos,
- int (*dispersion) (char *, int),
- int (*resol_col)(int pos_inicial, int num_intento)) {}
- void informe(tabla_cerrada diccionario, item *datos, int ndatos,
- int (*dispersion) (char *, int),
- int (*resol_col)(int pos_inicial, int num_intento)) {
- int i, colisiones = 0;
- if (dispersion==dispersionA && resol_col==sol_lineal)
- printf(":::::----Dispersion cerrada lineal con dispersion A\n");
- else if (dispersion==dispersionA && resol_col==sol_cuadratica)
- printf(":::::----Dispersion cerrada cuadratica con dispersion A\n");
- else if (dispersion==dispersionB && resol_col==sol_lineal)
- printf(":::::----Dispersion cerrada lineal con dispersion B\n");
- else if (dispersion==dispersionB && resol_col==sol_cuadratica)
- printf(":::::----Dispersion cerrada cuadratica con dispersion B\n");
- else exit(0);
- inicializar_cerrada(&diccionario, TAM);//38197
- printf("Insertando %u elementos... ", ndatos);
- for (i=0;i<ndatos;i++)
- colisiones += insertar_cerrada(datos[i].clave, datos[i].sinonimos,
- &diccionario, TAM, dispersion, resol_col);
- printf("Numero total de colisiones: %u\n", colisiones);
- printf("Buscando n elementos...\n");
- tiempos(diccionario, datos, ndatos, dispersion, resol_col);
- }
- int main() {
- tabla_cerrada diccionario;
- item datos[DEFINETAM]//19062
- int ndatos = leer_sinonimos(datos);
- testTabla(diccionario, sol_lineal);
- testTabla(diccionario, sol_cuadratica);
- informe(diccionario, datos, ndatos, dispersionA, sol_lineal);
- informe(diccionario, datos, ndatos, dispersionA, sol_cuadratica);
- informe(diccionario, datos, ndatos, dispersionB, sol_lineal);
- informe(diccionario, datos, ndatos, dispersionB, sol_cuadratica);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement