Tables de hachage en C - C - Programmation
Marsh Posté le 10-04-2006 à 15:46:42
ReplyMarsh Posté le 10-04-2006 à 15:48:27
OK Dsl
Code :
|
Marsh Posté le 10-04-2006 à 15:49:56
... et quelles sont les erreurs Ma boule de crystal est encore naze
Marsh Posté le 10-04-2006 à 15:51:16
alexletiti a écrit : Bonjour, |
C'est brouillon ce code. Il n'y a pas de document de conception ? Il faut cesser de coder au hasard...
Marsh Posté le 10-04-2006 à 15:42:33
Bonjour,
je dois faire une table de hachage mais il y a des erreurs con dans mon prog mais je n'arrive pas à les résoudre. De plus je vois pas trop comment je peux remplir le main.
Merci pour votre aide.
Voici le prog :
#include<memory.h>
#include<stdio.h>
#define TRUE 1
#define FALSE 0
typedef struct cell_struct{
char *key;
int value;
struct cell_struct *next;
}cell_t;
typedef struct{
int size;
int count;
cell_t **cells;
}table_t;
unsigned long Chaine_hacher(char *s){
unsigned long somme=0;
for( ;*s != '\0' ; ++s){
somme=223 * somme + *((unsigned long*)s);
}
return somme;
}
void Table_initialiser(table_t *t, int size){
t->size = size;
t->count = 0;
t->cells = (cell_t**) malloc(size*sizeof(cell_t*));
memset(t->cells, 0*00, size*sizeof(cell_t*));
}
void Table_detruire(table_t *t){
int i;
for (i = 0 ; i < t->size ; ++i){
cell_t * cell = t->cells[i];
while (cell != NULL){
cell_t * del = cell;
free(del->key);
free(del);
cell = cell->next;
}
}
free(t);
}
void Table_ajouter(table_t*t, char *key, int val){
unsigned long idx = Chaine_hacher(key) % t->size;
cell_t * new_cell = Table_initialiser(t, size);
t->cells[idx] = new_cell;
t->count += 1;
}
int Table_rechercher(table_t*t, char *key, int *val){
unsigned long idx = Chaine_hacher(key) % t->size;
if(idx == NULL){
return FALSE;
}
}
int main(){
}