No non ti consiglio di usare il C++ siccome il compito non lo permette. In C++ tutto il tuo compito si traduce in:
std::map<int,string> memAssociativa; //esempio che usa un intero come chiave e una stringa come valore
devi utilizzare il C. Quindi siccome il prof non ha detto che tipo di dati deve accettare li puoi chiedere se puoi utilizzare stringhe (char * in C) per tutti e due i tipi di dati: chiave e valore. Se si tutto si traduce in una lista (esempio semplice) di una struttura definita così:
typedef struct _cella
{
char *chiave;
char *valore;
_cella *next;
}cella;
Ovviamente devi scrivere tutto il codice che ci sta attorno per farlo funzionare e non è un progetto da 1 giorno. Dovevi iniziare ben prima.