bonjour à tous,
jai construit une table de hachage qui contient des mots et pour chaque mot sa frequence.
jai fait une focntion qui supprime les element de la table de hachage qui supprime les mot qui ont ne frequence egale à 1.
le probleme c'est que j'ai decouvert que meme apres cette operation de suppression ya encore de element qi persistent encore dans la table de hachage et qui ont une frequence ==1
je vois pas pourquoi?
help svp
merci
le probleme c'est que quand je remplie cette table d'un ptit nombre de mots: cette fonction marche nikel
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 void clean_table(Liste **TableHash, int NombreLigne ) { int boucle; float suup=0; for ( boucle = 0; boucle < TAILLEHASH; boucle++) { Liste *premier_valide = NULL; Liste *q = TableHash[boucle]; while (q != NULL) { printf ("%d", q->freq); //suup = (float)(q->freq) / (float)(NombreLigne); // printf("%f", suup); // //if (suup <= Seuil) if(q->freq==1) { /* supprime l'element */ Liste *tmp = q->suivant; /* -mo- libere(q); n'est pas déclarée */ q = tmp; } else { if (premier_valide == NULL) { premier_valide = q; } q = q->suivant; } } TableHash[boucle] = premier_valide; } }
et dans le cas contraire ca donne pas de bon resultats
Partager