ciao a tutti, come risolvereste questo esercizio?
In particolare mi servirebbe il criterio più che le implementazioni delle funzioni. Io avevo pensato al metodo della divisione, del tipo h(x)=x%M con M=dimensione del dizionario(invece che della tabella).




Si supponga di dover memorizzare un dizionario D contenente M chiavi in una tabella hash H
implementata mediante liste di trabocco. Si supponga che la tabella hash abbia dimensione
MAX_TAB e che le liste di trabocco possono contenere al massimo MAX_LST elementi. Si
considerino le seguenti dichiarazioni che definiscono H e il prototipo delle funzione hash:
Codice PHP:
typedef struct elem_lst{
chiave k;
struct elem_lst *next;
}
elem_lst
typedef elem_lst 
*lst_trbc;
typedef struct elem_tab{
lst_trbc lst/* ptr alla lsta di trabocco */
int cnt/* num. di elementi correnti nella lista di trabocco<=
MAX_LST*/
elem_tab;
elem_tab H[MAX_TAB];
int hash(chiave K)
/* Post: hash(k) restituisce la posizione i in H dove memorizzare i dati
relativi alla chiave K */ 
Sapendo che sempre si avrà che M < MAX_TAB*MAX_LST, si proponga un criterio per
memorizzare il dizionario usando H, si scriva una funzione mod_hash che usi hash e
implementi il criterio scelto, e infine si scriva una funzione che consenta la ricerca di una chiave
nella tabella.