C语言的HashTable简单实现

2014-11-24 10:14:45 · 作者: · 浏览: 0

HashTable是在实际应用中很重要的一个结构,下面讨论一个简单的实现,虽然简单,但是该有的部分都还是有的。


一,访问接口


创建一个hashtable.


hashtable hashtable_new(int size) // size表示包含的接点个数。


存入key-value至hashtable中。


void hashtable_put(hashtable h,const char* key,void *val);


根据key从hashtable中取出value值。


void * hashtable_get(hashtable h,const char *key);


释放hashtable。


void hashtable_free(hashtable h);


释放单个hash 接点


void hashtable_delete_node(hashtable h, const char *key);


二,数据结构


hash接点的结构:



hashtable的数据结构:



size:当前hash的接点空间大小。


count:用于表示当前接点空间中可用的hash接点个数。


z:用于在接点空间中存储接点。


三,创建hashtable


代码如下:



四,存入key-value值


在这个操作之前,先要定义一个根据KEY值计算hashcode的函数。



代码如下: