Quello che devi fare è creare una funzione che traduca una chiave in un indirizzo unico all'interno della tua struttura dati. Il problema è che ipoteticamente due chiavi diverse dovrebbero avere un indirizzo (posizione) diversa. Nella realtá questo non accade. Si parla di collisioni. Esiston diverse tecniche per gestire queste collisioni (linear probing, double hashing, cuckoo hashing, ...).
Visto che ti han rubato l'idea dell'hashing, potresti cocnentrarti su una nuova tecnica di gestione delle collisioni, per quanto le attuali siano gia particolarmente efficienti.