哈希表(初步实现)
来源:互联网 发布:字符型二维数组初始化 编辑:程序博客网 时间:2024/05/29 13:24
#include<cstdio>#include<iostream>#include<cstdlib>#include<cmath>using namespace std;#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define Maxsize 100 //储存空间初始化分配量#define SUCCESS 1#define UNSUCCESS 0#define HASHSIZE 12 //定义散列表长为数组的长度#define NULLKEY -32768typedef int Status;typedef struct{ int *elem; //数据元素储存基址,动态的分配内存 int cnt; //当前数据元素个数}HashTable;int m; // 散列表表长,全局变量Status InitHashTable(HashTable *H){ int i; m = HASHSIZE; //因为有HASHSIZE个元素 H->cnt = m; H->elem = (int *)malloc(m*sizeof(int)); for(i=0;i<m;i++) H->elem[i] = NULLKEY;//初始化 return OK;//表示初始化成功}int Hash(int key){ return key % m; //除留余数法}void InsertHash(HashTable *H,int key){ int addr = Hash(key); //求散列地址 while(H->elem[addr] != NULLKEY) //表明那个地方已经有值了,代表冲突了 { addr = (addr + 1) % m; //找后面的空位插入 } H->elem[addr] = key;//直到后面有空位插入}Status SearchHash(HashTable H,int key,int *addr){ *addr = Hash(key); //求散列地址 while(H.elem[*addr] != key) { *addr = (*addr + 1) % m; if(H.elem[*addr] == NULLKEY || *addr == Hash(key)) //如果循环回到原点 { return UNSUCCESS; } } return SUCCESS;}int main(){ int arr[HASHSIZE] = {12,67,56,16,25,37,22,29,15,47,48,34}; int i,p,key,result; HashTable H; key = 39; InitHashTable(&H); for(i=0;i<m;i++) InsertHash(&H,arr[i]); result = SearchHash(H,key,&p); if(result) cout<<"查找"<<key<<"的地址为"<<p<<endl; else cout<<"查到"<<key<<"失败"<<endl; for(i=0;i<m;i++) { key = arr[i]; SearchHash(H,key,&p); cout<<"查找"<<key<<"的地址为"<<p<<endl; } return 0;}
0 0
- 哈希表(初步实现)
- 初步实现定时器
- A*初步实现
- 智能指针初步实现
- UDK 坦克初步实现
- apriori算法 初步实现
- LRUCache初步实现
- OJ实现初步尝试
- python 初步实现人机对话
- javaEE 初步实现分页
- 初步实现的感悟
- 初步实现 I18N 插件
- python初步实现word2vec
- ionic2 初步实现 Authentication
- GUI图形初步实现
- KNN算法初步实现
- python初步实现word2vec
- python初步实现word2vec
- 第12周项目2-分离一个整数的各位数
- 用javabean封装xml文档数据
- LeetCode——Search Insert Position
- webrtc系列专题之trickle ice
- 【C语言疯狂讲义】(十二)C语言二维数组
- 哈希表(初步实现)
- windows程序设计之捕获鼠标
- MVC入门(一)——什么是MVC及其处理方式
- UVA10254 - The Priest Mathematician(找规律)
- 数据类型和基本运算第一天
- 可以让图标随心所遇的变色
- C#视频总结
- MySQL修改密码方法总结
- jsp环境搭建