Bonjour, soient les types suivants :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
typedef struct HASHELEMENT {
    char *chaine;
    int valeur;
    struct HASHELEMENT *suivant;
} hashElement;
 
typedef hashElement *hashList;
Je cherche à faire la fonction void insert(hashList *liste, char *chaine, int valeur) qui insère la chaine et sa valeur en tête de la liste si elle ne s'y trouve pas déjà.

Voici mon code qui ne marche pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void insert(hashList *liste, char *chaine, int valeur) {
    int i = 0;
    if (liste != NULL && chaine != NULL) {
        while (liste != NULL) {
            if (liste->chaine == chaine) {
                i = 1;
            }
            liste = liste->suivant;
        }
        if (i == 0) { 
            hashList l = NULL;
            hashElement *e = chaine;
            l->chaine = e;
            l->suivant = liste;
            liste = l;     
        }  
    }
}
Pouvez vous m'aider ? Merci d'avance