Hash Table 开放寻址处理冲突
来源:互联网 发布:2017seo内容编辑软件 编辑:程序博客网 时间:2024/05/16 07:00
Code:
#include <iostream>using namespace std;const int p = 7;const int N = 8;int T[N];/// 初始化void hash_init(){ for (int i = 0; i < N; ++i) { T[i] = -1; }}/// 开放寻址int hash_fun(int value, int i) { return (value + i) % p;}void hash_insert(int value){ int key = hash_fun(value, 0); for (int i = 1; i < p; ++i) { if (T[key] == -1) { T[key] = value; break; } else { key = hash_fun(value, i); } }}int hash_search(int value){ int key = hash_fun(value, 0); for (int i = 1; i < p; ++i) { if (T[key] == value ) { return key; } if (T[key] == -1) { return -1; } key = hash_fun(value, i); } return -1;}void hash_delete(int value){ int result = hash_search(value); if (result != -1) { T[result] = -1; } else { cout << endl << "No number!" << endl; }}void hash_print(){ for (int i = 0; i < N; ++i) { cout << T[i] << "\t"; }}int main(){ int i; int array[] = {5, 28, 19, 15, 20, 33}; for(i = 1; i <= N; ++i) { cout << i << "\t"; } cout << endl; hash_init(); hash_print(); cout << endl; for (i = 0; i < sizeof(array)/sizeof(*array); ++i) { hash_insert(array[i]); } hash_print(); hash_delete(100); hash_delete(5); hash_print(); return 0;}
0 0
- Hash Table 开放寻址处理冲突
- HASH表(采用开放地址法处理hash冲突)
- hash实现--开放寻址方式
- hash实现--开放寻址方式
- 散列表中冲突的处理方法(开放寻址法)
- 开放寻址法解决散列冲突
- [数据结构]hash小题HD1496(hash开放寻址)
- hash冲突处理
- hash冲突处理
- hash 冲突处理
- hash table碰撞处理
- hash(开放地址法解决冲突)
- hash之开放定址法解决冲突
- C语言 开放寻址法HASH表存储简单实现
- [数据结构]Hash表初学(开放寻址法 )
- 开放定址法处理冲突
- 哈希冲突解决之开放寻址法
- Hash冲突处理终极版
- 杭电OJ(HDOJ)1010题:Tempter of the Bone(DFS,迷宫求解)
- 杨辉三角
- linux snprintf获取字符串中的某一段的长度问题
- uva 10487
- hdu-1282-回文数猜想( 存int类型操作 )
- Hash Table 开放寻址处理冲突
- OpenWRT定时关闭WIFI
- JAVA - 类和对象
- re---Python的正则表达式模块
- JAVA中开闭原则-----对扩展开放, 对修改关闭。以及接口隔离原则的强大
- 技术的未来,迷茫和选择
- 内核空间和用户空间
- 浏览器下载文件时一共发送2次请求,如何把“下载次数”只记录为1次?
- 自己动手写CPU之第九阶段(8)——MIPS32中的LL、SC指令说明