pNode = pHashTbl->value[data % 10];
while(NULL != pNode->next)
pNode = pNode->next;
pNode->next = (NODE*)malloc(sizeof(NODE));
memset(pNode->next, 0, sizeof(NODE));
pNode->next->data = data;
return TRUE;
}
e)从hash表中删除数据
STATUS delete_data_from_hash(HASH_TABLE* pHashTbl, int data)
{
NODE* pHead;
NODE* pNode;
if(NULL == pHashTbl || NULL == pHashTbl->value[data % 10])
return FALSE;
if(NULL == (pNode = find_data_in_hash(pHashTbl, data)))
return FALSE;
if(pNode == pHashTbl->value[data % 10]){
pHashTbl->value[data % 10] = pNode->next;
goto final;
}
pHead = pHashTbl->value[data % 10];
while(pNode != pHead ->next)
pHead = pHead->next;
pHead->next = pNode->next;
final:
free(pNode);
return TRUE;
}
STATUS delete_data_from_hash(HASH_TABLE* pHashTbl, int data)
{
NODE* pHead;
NODE* pNode;
if(NULL == pHashTbl || NULL == pHashTbl->value[data % 10])
return FALSE;
if(NULL == (pNode = find_data_in_hash(pHashTbl, data)))
return FALSE;
if(pNode == pHashTbl->value[data % 10]){
pHashTbl->value[data % 10] = pNode->next;
goto final;
}
pHead = pHashTbl->value[data % 10];
while(pNode != pHead ->next)
pHead = pHead->next;
pHead->next = pNode->next;
final:
free(pNode);
return TRUE;
}
总结:
1、hash表不复杂,我们在开发中也经常使用,建议朋友们好好掌握;
2、hash表可以和二叉树形成复合结构,至于为什么,建议朋友们好好思考一下?