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 *table){
 int index;
 index = hash(clave,tabla);
?????????????????????????????????
} | 
Indique cuál es el trozo de código que falta