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
		
		
        


   


  Répondre avec citation

 
 
 
  
 
				


 




Partager