Comprueba con estas preguntas si has entendido este documento.
Este es el código incompleto de definición de la estructura de datos de una tabla hash
con colisiones gestionadas a través de estructuras enlazadas.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | struct datos { char *name; int nia; }; struct elemento_t { struct datos valor; struct elemento_t *next; }; struct tabla_type { int tamanho; int num_elementos; double densidad_deseada; ??????????????????????? }; |
Indique cuál es el trozo de código que falta
Este es el código incompleto de inicialización de la tabla hash
del ejercicio anterior.
1 2 3 4 5 6 7 | tabla_type tabla; int i; tabla.tamanho=20; tabla.num_elementos=0; tabla.densidad_deseada=0.25; tabla.tabla = (elemento_type **) malloc (sizeof(elemento_type *)*tabla.tamanho); ????????????????? |
Indique cuál es el trozo de código que falta
Este es el código incompleto de la función hash
y de las funciones necesarias para insertar un nuevo elemento.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | int hash(int clave,tabla_type *tabla) { /*fmod returns the module of the division*/ return (int ) fmod((float)clave,(float)tabla->tamanho); } elemento_type *new_element(int clave, datos valor, elemento_type *next){ elemento_type *new_el = (elemento_type *)malloc(sizeof (elemento_type)); new_el->datos=valor; new_el->clave=clave; new_el->next=next; return new_el; } void insert_element(int clave, datos valor, tabla_type *tabla){ int index; index = hash(clave,tabla); ????????????????????????????????? } |
Indique cuál es el trozo de código que falta