試圖更好地理解哈希表上的鏈接。尋找一個簡單的表,其散列一個值,並且只將一個整數與散列值相關聯。這裏是有問題的問題的示例代碼...使用鏈接的快速哈希表
/* 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
可以更詳細地描述你的散列函數?什麼是「int level」,你在談論的是什麼? – havexz
請不要在你的問題中大喊...... – Amy