Código (c) [Seleccionar] 
typedef void* hash_dato_t;//???
typedef void (*destruir_dato_t )(hash_dato_t); 
struct _hash_t {
    size_t largo;
    size_t cantidad;
    destruir_dato_t destruir_dato; /*función para destruir un dato*/
    lista_t** vector; /*arreglo de punteros que apuntan a listas*/
};
void destruir_dato(hash_dato_t){
  //code
}
hash_t* hash_crear(destruir_dato_t destruir_dato){
/*
new/maloc part
*/
hash->destruir_dato = destruir_dato;
return hash;
}
//code?
hash=hash_crear(destruir_dato);
hash->destruir_dato(dato_aux);S2
.
.