数据结构中哈希表是如何详细解析的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2227个文字,预计阅读时间需要9分钟。
目录+实现+散列函数+开散列方法+闭散列方法(地址方法)+删除*+实现+哈希表,即散列表,可以快速进行地存储和查询记录。哈希表的存储和查询时间都是O(1)。本《资料》中哈希表部分主要介绍+。
目录
- 实现
- 散列函数
- 开散列方法
- 闭散列方法(开地址方法)
- 删除*
实现
哈希表,即散列表,可以快速地存储和查询记录。理想哈希表的存储和查询时间都是 O(1)。
本《资料》中哈希表分以下几部分:散列函数、存储和查找时的元素定位、存储、查找。删除操作因为不常用,所以只给出思想,不给出代码。
根据实际情况,可选择不同的散列方法。
以下代码假设哈希表不会溢出。
// N表示哈希表长度,是一个素数,M表示额外空间的大小,empty代表“没有元素”。 const int N=9997, M=10000, empty=-1; int a[N]; void init() // 初始化哈希表 { memset(a,empty,sizeof(a)); // 注意,只有empty等于0或-1时才可以这样做! memset(bucket,empty,sizeof(bucket)); memset(first,0,sizeof(first)); } inline int h(int); // 散列函数 int *locate(int, bool); // 用于存储和查找的定位函数,并返回对应位置。 // 如果用于存储,则第二个参数为true,否则为false①。
本文共计2227个文字,预计阅读时间需要9分钟。
目录+实现+散列函数+开散列方法+闭散列方法(地址方法)+删除*+实现+哈希表,即散列表,可以快速进行地存储和查询记录。哈希表的存储和查询时间都是O(1)。本《资料》中哈希表部分主要介绍+。
目录
- 实现
- 散列函数
- 开散列方法
- 闭散列方法(开地址方法)
- 删除*
实现
哈希表,即散列表,可以快速地存储和查询记录。理想哈希表的存储和查询时间都是 O(1)。
本《资料》中哈希表分以下几部分:散列函数、存储和查找时的元素定位、存储、查找。删除操作因为不常用,所以只给出思想,不给出代码。
根据实际情况,可选择不同的散列方法。
以下代码假设哈希表不会溢出。
// N表示哈希表长度,是一个素数,M表示额外空间的大小,empty代表“没有元素”。 const int N=9997, M=10000, empty=-1; int a[N]; void init() // 初始化哈希表 { memset(a,empty,sizeof(a)); // 注意,只有empty等于0或-1时才可以这样做! memset(bucket,empty,sizeof(bucket)); memset(first,0,sizeof(first)); } inline int h(int); // 散列函数 int *locate(int, bool); // 用于存储和查找的定位函数,并返回对应位置。 // 如果用于存储,则第二个参数为true,否则为false①。

