如何解决删除条目哈希表
class HashTable{
public int hash(int id){ return id%10;}
private HNode[] head=new HNode[10];
public HashTable(){for(int i=0;i<10;i++)head[i]=null;}
public void insert(int k,String nm,int a,String g,String mOB,int c,String add,int pn)
{ HNode temp =new HNode(k,nm,a,g,mOB,c,add,pn);
int index=hash(k);
temp.next=head[index];
head[index]=temp;}
public HNode[] readHNode() {return head;}
public HNode search(int k)
{
int index=hash(k);
HNode temp=head[index];
boolean found=false;
while(temp!=null&&found==false) {
if (temp.key==k){found=true; break;}
temp=temp.next;
}
return temp;}
}
解决方法
设 x 为要删除的元素。
一句话: 如果 x 不存在,则什么都不做。 else - 将“x”之前的列表(在“head”的相关索引中)附加到 x 之后的列表中。
假设你有
x1,x2,x3
具有相同的哈希值“h1”。
head[h1] 是一个包含 x1,x3 的列表。
基本上,您应该进行分配:
x1.next = x3
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。