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的函数。
代码如下: