Implementer Double Hashing methode

Fermé
flaubert007 Messages postés 4 Date d'inscription lundi 22 avril 2013 Statut Membre Dernière intervention 13 décembre 2013 - 13 déc. 2013 à 19:45
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 13 déc. 2013 à 20:30
Bonjour,

après avoir fait le cours sur la Hashing Methode, j'éssaye moi meme d'implementer
un algorithme permettant d'inserer et de chercher un nombre dans le tableau hash.
Pour ce faire je programme en c et la je suis blocqué ...
voici l'extrait de mon programme , j'en suis un d'butant ..
Stp aidez- moi !!!!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

#define M1 13
#define M2 7
#define H1 hash1
#define H2 hash2


int main()
{
int a [M1];
int i ;
int n, value; /* n ist die Länge des ARRAYS.
v ist der Wert des Schlüssel K
*/
int hash, hash1, hash2;
hash1 = value%M1;
hash2 = value%M2;
printf("Value of Key: ");
scanf("%d", &value);
int fonction_insert(int value)
{

int H1, H2;
do
{
int hash = (H1 + i*H2)%M1;
if (a[hash]== 0)
{
a[hash] = value;

}
return 0;
else
{
hash = (H1 - i*H2)%M1;
if (a[hash] == 0)
{

a[hash] = value;

}
return true;
else
i++;
}

}
while(return true && i <= M1/2);



return value;
}
A voir également:

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
13 déc. 2013 à 20:30
Ce code n'a ni queue ni tête. Entre la fonction_insert déclarée à l'intérieur du main, les else posés un peu n'importe comment, des return true alors que true n'existe même pas en C, sans oublier les #define archi faux...

Il n'y a rien de bon dans ce code, tout est à refaire !

Donc t'intéresser aux hash code c'est bien, mais commence d'abord par un cours sur le langage C, parce que tu ne pourras rien faire sans un minimum de bases.
0