salutà tous
Jai un probleme qui me bloque:
jai une table de hachage chainé: un tableau de liste chainé
#ifndef TABLE_HASH#define TABLE_HASH typedefstruct c
{int pos;
int nl;
struct c *suivant;
}Coordonnees;
typedefstruct L
{char mot
[50];
Coordonnees *c;
struct L *suivant;
}Liste
voilà sa declaration :
Liste **TableHash; // tableau de liste TableHash = (Liste **) malloc (TAILLEHASH * sizeof(Liste *)); // allocation en memoire du tableaufor(i=0;i<TAILLEHASH;++i)// Initialisation des TableHash[i] = NULL; // pointeurs contenus dans le tableau
bon je possede aussi d'une liste qui contient les séquence des mots (la table de hachage contient les mot, ainsi leurs coordonnées).
Bon jai une fonction elaguer2seq: dui parcoure la table de hachage, aisi la liste des séquence, et verfief si chaque mot de la liste est inclus dans la séquencedes mots et est cequil ets bien le dernier mot de l'ensemble desmots qui constituent la sequencedes mots.
cette fonction de verification c'est la fonction "chercher_mot" qui renvoie la valeur 1 si le motverifie bien la condition.
si le mots verifie la fonction: il est inclus dans la séquence des mots etquil est à la derniere position, on le supprime de la table de hachage.
Ben moi je bloque danns cette fonction de suppression dela table, comment faire?????????
Aidez moi SVP
je comptesur vous.merci
void elaguer2seq(Liste *L, Liste **TableHash){ Liste *p; Liste *q; char *mot; int i=0; Liste *maillon_temp; printf(" seq : %s\n",L->mot); for( i=0;i<TAILLEHASH;i++){for(p=L;p!=NULL;p=p->suivant){if(TableHash[i] != NULL) if(chercher_mot(TableHash[i]->mot,p->mot)==0) printf("%s","condition vérifiée"); // supprimerMot maillon_temp=TableHash[i]; TableHash[i]=TableHash[i]->suivant ; free(maillon_temp); // AfficherTableHash(TableHash);}} } |  | |
|
[ Lien ] | |