From: Jérôme Benoit Date: Thu, 30 Mar 2017 20:23:40 +0000 (+0200) Subject: TP6: Again more K&R coding style X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=610564103be8125c889948445a4fc960af5e7e0b;p=Algorithmic_C.git TP6: Again more K&R coding style Signed-off-by: Jérôme Benoit --- diff --git a/TP6/hachage/chainage/hachage_chainage.c b/TP6/hachage/chainage/hachage_chainage.c index b971067..8acb0a8 100644 --- a/TP6/hachage/chainage/hachage_chainage.c +++ b/TP6/hachage/chainage/hachage_chainage.c @@ -4,85 +4,125 @@ #include #include -#define M 5 +#define M 5 /* on choisit M tres petit pour tester le programme, mais en realite, M est tres grand */ typedef int element; -typedef struct cellule {element valeur; - struct cellule *suivant; } Cellule, *Liste; - -typedef struct {Liste T[M]; } t_table; - -int h(element x) {return x%M; } +typedef struct cellule { + element valeur; + struct cellule *suivant; +} Cellule, *Liste; + +typedef struct { + Liste T[M]; +} t_table; + +int h(element x) +{ + return x % M; +} + /* "mauvaise" fonction de hachage - juste pour tester le programme */ - -t_table init_table() - {t_table t; - int i; - for (i=0; ivaleur) return 1; - else p=p->suivant; - return 0; - } - -int inserer(element x, t_table *t) +{ + int i = h(x); + Cellule *p = t.T[i]; + + while (p) + if (x == p->valeur) + return 1; + else + p = p->suivant; + return 0; +} + +int inserer(element x, t_table * t) /* retourne 0 si x est deja dans la table */ - {int i=h(x); - Cellule *p=t->T[i], *preced=NULL; - while (p) if (x==p->valeur) return 0; - else {preced = p; p=p->suivant; } - if (preced==NULL) {t->T[i]=(Cellule *)malloc(sizeof(Cellule)); - t->T[i]->valeur=x; - t->T[i]->suivant=NULL; - } - else {preced->suivant=(Cellule *)malloc(sizeof(Cellule)); - preced->suivant->valeur=x; - preced->suivant->suivant=NULL; - } - return 1; - } +{ + int i = h(x); + Cellule *p = t->T[i], *preced = NULL; + + while (p) + if (x == p->valeur) + return 0; + else { + preced = p; + p = p->suivant; + } + if (preced == NULL) { + t->T[i] = (Cellule *) malloc(sizeof(Cellule)); + t->T[i]->valeur = x; + t->T[i]->suivant = NULL; + } else { + preced->suivant = (Cellule *) malloc(sizeof(Cellule)); + preced->suivant->valeur = x; + preced->suivant->suivant = NULL; + } + return 1; +} void visu(Liste L) - {if (L){printf("%d\t",L->valeur); - visu(L->suivant); - } - } - +{ + if (L) { + printf("%d\t", L->valeur); + visu(L->suivant); + } +} + void afficher(t_table t) - {Cellule *p; - int i; - for (i=0; i