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