Advertisement
Guest User

Untitled

a guest
Nov 20th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.24 KB | None | 0 0
  1. int dispersionTest(char *clave, int tamTabla) {
  2. if ((strcmp(clave, "ANA"))==0) return 7;
  3. if ((strcmp(clave, "JOSE"))==0) return 7;
  4. if ((strcmp(clave, "OLGA"))==0) return 7;
  5. return 6;
  6. }
  7.  
  8. void testTabla(tabla_cerrada diccionario,
  9. int (*sol_colisiones)(int pos_inicial, int num_intento)) {
  10. int i, colisiones = 0, tamTabla = 11;
  11. char *datosTest[4]={"ANA", "JOSE", "OLGA", "LUIS", "ROSA", "IVAN", "CARLOS"};
  12. pos p;
  13.  
  14. if (sol_colisiones==sol_lineal)
  15. printf(":::::------TABLA CERRADA LINEAL------:::::\n\n");
  16. else if (sol_colisiones==sol_cuadratica)
  17. printf(":::::----TABLA CERRADA CUADRATICA----:::::\n\n");
  18. inicializar_cerrada(&diccionario, tamTabla);
  19. for (i=0; i<6; i++)
  20. colisiones += insertar_cerrada(datosTest[i], "", &diccionario,
  21. tamTabla, dispersionTest, sol_colisiones);
  22. mostrar_cerrada(diccionario, tamTabla);
  23. printf("numero de colisiones: %u\n\n", colisiones);
  24. for (i=0; i<7; i++){
  25. p = buscar_cerrada(datosTest[i], diccionario, tamTabla,
  26. dispersionTest, sol_colisiones);
  27. if (diccionario[p].ocupada)
  28. printf("Al buscar: %5s, encuentro: %5s\n",
  29. datosTest[i], diccionario[p].clave);
  30. else
  31. printf("No encuentro: %5s\n", datosTest[i]);
  32. }
  33. printf("\n");
  34. }
  35. void tiempos(tabla_cerrada diccionario, item *datos, int ndatos,
  36. int (*dispersion) (char *, int),
  37. int (*resol_col)(int pos_inicial, int num_intento)) {}
  38.  
  39. void informe(tabla_cerrada diccionario, item *datos, int ndatos,
  40. int (*dispersion) (char *, int),
  41. int (*resol_col)(int pos_inicial, int num_intento)) {
  42. int i, colisiones = 0;
  43.  
  44. if (dispersion==dispersionA && resol_col==sol_lineal)
  45. printf(":::::----Dispersion cerrada lineal con dispersion A\n");
  46. else if (dispersion==dispersionA && resol_col==sol_cuadratica)
  47. printf(":::::----Dispersion cerrada cuadratica con dispersion A\n");
  48. else if (dispersion==dispersionB && resol_col==sol_lineal)
  49. printf(":::::----Dispersion cerrada lineal con dispersion B\n");
  50. else if (dispersion==dispersionB && resol_col==sol_cuadratica)
  51. printf(":::::----Dispersion cerrada cuadratica con dispersion B\n");
  52. else exit(0);
  53. inicializar_cerrada(&diccionario, TAM);//38197
  54. printf("Insertando %u elementos... ", ndatos);
  55. for (i=0;i<ndatos;i++)
  56. colisiones += insertar_cerrada(datos[i].clave, datos[i].sinonimos,
  57. &diccionario, TAM, dispersion, resol_col);
  58. printf("Numero total de colisiones: %u\n", colisiones);
  59. printf("Buscando n elementos...\n");
  60. tiempos(diccionario, datos, ndatos, dispersion, resol_col);
  61. }
  62.  
  63. int main() {
  64. tabla_cerrada diccionario;
  65. item datos[DEFINETAM]//19062
  66. int ndatos = leer_sinonimos(datos);
  67.  
  68. testTabla(diccionario, sol_lineal);
  69. testTabla(diccionario, sol_cuadratica);
  70.  
  71. informe(diccionario, datos, ndatos, dispersionA, sol_lineal);
  72. informe(diccionario, datos, ndatos, dispersionA, sol_cuadratica);
  73. informe(diccionario, datos, ndatos, dispersionB, sol_lineal);
  74. informe(diccionario, datos, ndatos, dispersionB, sol_cuadratica);
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement