哈希表
C语言哈希表 【1】设计数据结构 (1)哈希表由一个结构体HashTable构成 (2)结构体HashTable由两个元素组成。其一为指针数组(链式存储元素);其二为整型变量(记录元素个数) (3)指针数组类型为HashNode *(哈希节点指针) (4)结构体HashNode由数据域和指针域组成。数据域也是一种结构类型变量,指针域为一个同类型指针,为了实现链式存储。 (5)数据域结构体ElemType由关键码以及其他相关信息组成(在此程序里没有添加) (6)拟定哈希表长度为13 【2】C语言表示数据结构 1 #define M 13 2 typedef int KeyType; 3 typedef struct 4 { 5 KeyType key; 6 //otherinfo; 7 }ElemType; 8 typedef struct _Node 9 { 10 ElemType data; 11 _Node *next; 12 }HashNode; 13 typedef struct 14 { 15 HashNode *table[M]; 16 int len; 17 }HashTable; 【3】函数设计 在设计函数之前,让我们先理解一下基本的逻辑: 哈希表中存储的每个元素都有一个关键码,而每个关键码都可以通过与哈希表的总数取模(当然这个算法可以任意选择)得到一个索引