哈希冲突的开散列方式
在我的博客哈希表上中详细介绍了哈希的概念以及处理哈希冲突的闭散列方式。在本文章中,主要介绍处理哈希冲突的另一种方式:开散列(链地址)。
开散列的概念
开散列:又叫链地址法、开链法。首先对关键码集合用哈希函数计算哈希地址,具有相同哈希地址的关键码归于同一子集合中,每一个子集合称为一个桶,各个桶中的元素通过一个单链表的方式链接起来(可以头插的方式将桶中元素链接起来),链表的第一个节点存放在哈希表中。
代码实现部分
关于代码的编程思路,在具体代码中有详细的说明!
头文件的定义
1 | typedef int KeyType; |
初始化及销毁操作
1 | void HashBucketInit(HashBucket *pHB,int capacity) |
查找操作
1 | Node *HashFind(HashBucket* pHB,KeyType key) |
插入操作
1 | int HashInsert(HashBucket *pHB, int key); |
删除操作
1 | //删除操作 |
打印操作
1 | void HashBucketPrint(HashBucket *pHB) |
测试操作
1 | void HashBucketTest() |