代码拉取完成,页面将自动刷新
package Hash;
public class HashTable {
private DataItem[] hashArray;
private int arraySize;
private DataItem nonItem;
public HashTable(int size) {
this.arraySize = size;
this.hashArray = new DataItem[this.arraySize];
this.nonItem = new DataItem(-1);
}
public void displayTable() {
System.out.print("Table:");
for(int j=0;j<this.arraySize;j++) {
if(this.hashArray[j] != null) {
System.out.print(this.hashArray[j].getKey()+" ");
}else {
System.out.print("*");
}
System.out.print("/");
}
}
/**
* 哈希函数 - 线性探测哈希表
* @return
*/
public int hashFunc(int key) {
return key % this.arraySize;
}
/**
* 再哈希函数
* @param key
* @return
*/
public int hashFunc2(int key) {
return 5-(key%5);
}
public void insert(int i) {
DataItem newItem = new DataItem(i);
int hashVal = this.hashFunc(i);
int stepSize = this.hashFunc2(i);
while(this.hashArray[hashVal] != null && this.hashArray[hashVal].getKey() != -1) {
hashVal += stepSize;
hashVal %= this.arraySize;
}
this.hashArray[hashVal] = newItem;
}
public DataItem delete(int key) {
int hashVal = this.hashFunc(key);
int stepSize = this.hashFunc2(key);
while(this.hashArray[hashVal] != null) {
if(this.hashArray[hashVal].getKey() == key) {
DataItem temp = this.hashArray[hashVal];
this.hashArray[hashVal] = this.nonItem;
return temp;
}
hashVal += stepSize;
hashVal %= this.arraySize;
}
return null;
}
public boolean find(int key) {
int hashVal = this.hashFunc(key);
int stepSize = this.hashFunc2(key);
while(this.hashArray[hashVal] != null) {
if(this.hashArray[hashVal].getKey() == key) {
return true;
}
hashVal += stepSize;
hashVal %= this.arraySize;
}
return false;
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。