一个通用HASH算法的实现
2012-08-15 22:50
344 查看
由于在项目中需要使用到不同关键字类型(整数,字符串等)来构建hash表,可以使用一个较为通用的hash表操作算法来实现。
1:支持多种关键字类型。
2:支持hash表的动态扩大。
3:通过双向链表链接所有元素,方便hash表的动态扩展和清空。
一个实例:hash值1、3、5、7中存在对应的元素节点,这些元素节点又互相链接并由一个pHead节点指向。
View Code
转载请注明原始出处:http://www.cnblogs.com/chencheng/archive/2012/08/13/2637216.html
1:支持多种关键字类型。
2:支持hash表的动态扩大。
3:通过双向链表链接所有元素,方便hash表的动态扩展和清空。
一个实例:hash值1、3、5、7中存在对应的元素节点,这些元素节点又互相链接并由一个pHead节点指向。
View Code
void ClearHash(hash_t *pHash) { int eCount = 0; elemPtr_t pElem = NULL; elemPtr_t pNextElem = NULL; assert(pHash && pHash->pHashTable && pHash->pFirstElem); eCount = pHash->eCount; pElem = pHash-> pFirstElem; while((eCount--) && pElem) { pNextElem = pElem->pNext; free(pElem); pElem = pNextElem; } free(pHash->pHashTable); pHash->pHashTable = NULL; pHash-> pFirstElem = NULL; pHash->eCount = 0; pHash->bSize = 0; return; }
转载请注明原始出处:http://www.cnblogs.com/chencheng/archive/2012/08/13/2637216.html
相关文章推荐
- 一个通用dao的实现
- 如何抽取一个通用的Android Loading页面快速实现加载功能
- 分析一个通用的rtsp server实现过程发送模块
- DynamicXml -- 动态读取操作XML (一个从XML到Object的通用实现)
- 模仿qsort的功能实现的一个通用的冒泡排序
- 一个通用的单元测试框架的思考和设计06-实现篇-自动管理测试数据-如何临时关闭数据外键约束
- 一个简单的通用Makefile实现
- 使用python实现一个通用协议测试工具
- 采用C++的ACE库实现的一个通用的C/S架构通信程序(最终版)
- 一个通用的单元测试框架的思考和设计05-实现篇-Guice框架启动与自动注入
- 自己写一个通用的MessageBox(SDK实现)
- Asp.net中使用DapperExtensions和反射来实现一个通用搜索
- (转载)一个通用并发对象池的实现
- 设计并实现用于ASP.NET一个通用的数据存取层应用程序 原作者 Paul Abarham 翻译 cwxiao888@163.com
- iOS开发:代码通用性以及其规范 第二篇(猜想iOS中实现TableView内部设计思路(附代码),以类似的思想实现一个通用的进度条)
- 一个通用的单元测试框架的思考和设计05-实现篇-Guice框架启动与自动注入
- 分析一个通用的rtsp server实现过程总纲
- 一个函数返回两值的通用实现方法(简单,备忘)
- 一个通用的Trie树,标准C++实现
- 一个通用的加法计算,适合所有类型 注:不用方法重载实现