2005-d-二
//链表节点
typedef struct LNode
{
int data;//节点值
struct LNode *next;//指向下一个节点
} LNode;
//哈希节点
typedef struct HNode
{
LNode *first;//链接的第一个指针域
} HNode;
//哈希表
typedef struct HashTable
{
HNode list[N];
}HashTable;
int seadel( HashTable *H,int k)
{
int pos=H(k);
LNode *p,*r;
p=H->list[pos]->first;
//判断第一个结点是否是
if(p->data==k)
{
H->list[pos]->first=p->next;
free(p);
}
r=p;
p=p->next;
//第一个不是
while(p!=NULL)
{
if(p->data==k)
{
r->next=p->next;
free(p);
return 1;
}else{
r=p;
p=p->next;
}
}
return 0;
}