Bonjour à tous,
Voilà pour les besoins d'un TP , j'ai eu a faire une simulation de hachage , c'est un code facile mais je n'arrive pas à comprendre pourquoi à l’exécution mon tableau qui devrait recevoir des entiers (les index d'un tableau en entrée) ne se rempli par au fur et a mesure de la boucle !!!
voilà le code
voilà j'ai l'impression que cette instruction ne s’exécute pas : Values[index] = value; à la compilation je retrouve ce résultat:
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 package TP8; public class HashLinearProbing { public static char Keys[] = new char[11]; public static int Values[] = new int[11]; // Fonction de hachage par modulo sur le code ascii d'un caractère en entrée public static int hash(char key, int M){ int hash; int ascii; ascii=(int) (key); // récupère le code ASCII d'un caractère hash=ascii % M; // hachage par modulo return hash; } public static void put(char key,int value){ int M = 11; int index; index = hash (key,M); while (Keys[index] != '\0') { index = (index + 1); } Keys[index] = key; Values[index] = value; } public static void main(String[] args) { //Déclaration de ma table d'entrée R (Exemple du cours "Hash Table Linear Probing exemple") char R[]= new char[10]; R[0]='B'; R[1]='O'; R[2]='E'; R[3]='P'; R[4]='C'; R[5]='L'; R[6]='X'; R[7]='N'; R[8]='D'; R[9]='M'; System.out.println("La table de données en entrée est la suivante :"); System.out.println(R); System.out.println("***************************************************"); int i; for (i=0; i<R.length; i++) { put(R[i],i); } System.out.println(Keys); System.out.println(Values); } }
[I@4cf2f585
Alors que le premier tableau (Keys) se rempli normalement !!!
s'il vous plait je vais devenir folle![]()
Partager