C语言实现常用数据结构(一)

Python023

C语言实现常用数据结构(一),第1张

实现了链表,栈、哈希表等

哈希表由数组加链表实现。通过计算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也是一个自定义的结构体名,具体代表什么还要看具体的代码。