ハッシュテーブルの連鎖をよりよく理解しようとしています。値をハッシュし、ハッシュ値に1つの整数のみを関連付ける単純なテーブルを求めます。問題の問題のサンプルコードは次のとおりです。連鎖を使用したクイックハッシュテーブル
/* hash string value return int */
public int hashFunction(String D) {
char[] Thing = D.toCharArray();
for(int i=0; i < Thing.length; i++){
index += Thing[i]; }
return index % TABLE_SIZE;
}
/* hash string value return void */
public void hashFunction(String D) {
char[] Thing = D.toCharArray();
for(int i=0; i < Thing.length; i++){
index += Thing[i];}
int hash = index % TABLE_SIZE;
if(table[hash] == null){
table[hash] = new HashEntry(Level, Value);
}
else{
table[hash].setNext(nd);
}
}
/* miscellaneous code snippet */
if(table[hash] == null){
table[hash] = new HashEntry();
}
else if (Data.compareTo("VAR") == 0) {
Data = inFile.next();
char[] Thing = Data.toCharArray();
for(int i=0; i < Thing.length; i++){
hash += Thing[i];}
hash = hash % TABLE_SIZE;
hm.setIntoHashTable(hash);
Data = inFile.next();
if(Data.compareTo("=") == 0) {
Data = inFile.next();
int value = Integer.parseInt(Data);
hm.getIntoHashTable(he.setValue(value));
}
}
あなたは 'int generateHash(String D)'と 'int insertIntoHashTable(String D)'を作成することができます。 'generateHash'はあなたのハッシュ関数です。 'insertIntoHashTable'は最初に' generateHash'を呼び出し、次に挿入ロジックを持っています – havexz
あなたのhashfunctionについてもっと詳しく説明できますか? 'int level 'とは何ですか?あなたは何を話していますか? – havexz
あなたの質問に叫んではいけません... – Amy