设为首页 加入收藏

TOP

一步一步写算法(之hash表) (二)
2014-11-23 23:36:39 来源: 作者: 【 】 浏览:20
Tags:步一步 算法 hash

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表可以和二叉树形成复合结构,至于为什么,建议朋友们好好思考一下?

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇一步一步写算法(之排序二叉树线.. 下一篇一步一步写算法(之排序二叉树的..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: