您的位置:首页 > 理论基础 > 数据结构算法

java数据结构——Hash的实现(数组) 线性探测的方法解决冲突

2016-10-07 10:37 489 查看
//Hash表的设计

//所谓数据结构,就是对数据的组织方式,通过设计合理的数据组织方式,可以高效的解决某类应用问题。

class Hash1{
public int[] hArray;
public int s;
public Hash1(int size){
hArray=new int[size];
s=size;
for(int i=0;i<s;i++){
hArray[i]=0;
}
}

public void insert(int n){
int index=n%s;

while(hArray[index]!=-1&&hArray[index]!=0){
index=(index+1)%s;
}
hArray[index]=n;

}

public int find(int key){
int i=key%s;
while(true){
if(hArray[i]==key)
return i;
else if(hArray[i]==0)
return -1;
else
i=(i+1)%s;
}
}

public boolean delete(int key){
int i=key%s;
while(true){
if(hArray[i]==key){
hArray[i]=-1;
return true;
}
else if(hArray[i]==0)
return false;
else
i=(i+1)%s;

}
}

public void showHash(){
for(int i=0;i<s;i++){
if(hArray[i]==0||hArray[i]==-1)
continue;
else 
System.out.print(hArray[i]+" ");
}
}

}

public class HashTest{
public static void main(String[] args){
Hash1 hs=new Hash1(17);
hs.insert(1);
hs.insert(20);
hs.insert(7);
hs.insert(8);
hs.insert(23);
hs.insert(21);
hs.insert(3);
hs.showHash();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Hash 线性探测