哈希表由数组加链表实现。通过计算key的哈希值,将哈希值转成int类型并与数组长度进行与运算得到数组下标,数组每个元素都是一个链表,默认为NULL。
通过InitHashTable函数得到初始化的哈希表。已实现功能有:添加键值、删除键值、根据键获取值,清理所有键值对、回收哈希表,可以根据例子遍历键值。
Key可以扩展为任何类型,但需要实现相应类型HashCode的算法,此处只支持字符串类型。
C语言实现常用数据结构二
项目地址
md5.h
md5.c
m_hashtable.h
m_hashtable.c
测试使用
1.<stdio.h>一般写C语言程序都要加这个头文件,因为它包含scanf()、printf()等控制输入和输出的函数:<time.h>包含的主要是和时间相关的函数
<string.h>主要包含用来拷贝或比较字符串的函数
<stdlib.h>主要包含这几个函数:malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()
这是比较常用到的头文件。
2.typedef struct{
SElemtype *base
SElemtype *top
int stacksize
}SqStack
以上为声明一个结构体,并用SqStack作为这个结构体名,结构体为自定义的数据类型。
其中selemtype也是一个自定义的结构体名,具体代表什么还要看具体的代码。