【正确答案】实现本题功能的函数代码如下:
int delnode(int s)
{
hashnode *p,*q;
int i;
i=(3*s) % M;
p=ht[i].next;q=p;
while(p!=NULL && p->key!=s)
{
cout<<p->key<<endl;
q=p;
p=p->next;
}
if(p!=NULL && p==q) //p为第一个结点
{
ht[i].next=p->next;
free(p);
return 1;
}
else if(p!=NULL) //p为其他结点
{
q->next=p->next;
free(p);
return 1;
}
else
{
return 0;
}
}
【答案解析】