codice:
TNode* esame_prof(TList list, char prof[]){
    TNode* max;
    if(list==NULL){
        return NULL;
    }
    while((list != NULL) && (strcmp(list->info.satellite.docente, prof) != 0))
        list = list->link;
    max = list;
    while(list!=NULL){
        if((strcmp(list->info.satellite.docente, prof) == 0) && (list->info.satellite.voto > max->info.satellite.voto))
            max=list;
        list=list->link;
    }
    return max;
}
Io avrei fatto così...