下列代碼的功能是利用散列函數hash
將一個元素插入到散列表ht[]
中。其中list
類型的結點包含element
類型的項item
、以及一個next
指針。若是插入成功,則函數返回1,不然返回0。c++
int insert( struct element item, list_pointer ht[] )
{
int ret, hash_value;
list_pointer ptr, trail, lead;
ret = 1;
hash_value = hash(item.key);
trail = NULL; lead = ht[hash_value];
for ( ; lead; trail = lead, lead = lead->next) {
if (!strcmp(lead->item.key, item.key)) {
printf("The key is in the table\n");
ret = 0;
}
}
if (ret) {
ptr = (list_pointer)malloc(sizeof(struct list));
(3分); ptr->next = NULL; if (trail) (3分); else (3分); } return ret; }