【发布时间】:2011-12-03 02:28:44
【问题描述】:
试图更好地理解哈希表上的链接。寻找一个简单的表,该表对一个值进行散列,并且只将一个整数与散列的值相关联。这是相关问题的示例代码...
/* 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然后有插入逻辑 -
你能描述一下你的哈希函数吗?
int level是什么,你说的另一个 int 是什么? -
请不要大声提问...
-
请不要破坏这个问题