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

本文介绍了一种简单的Hash表设计及其实现方法,包括插入、查找和删除等基本操作,并提供了一个示例程序来演示这些功能。
//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();

}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值