hash表的代码
来源:互联网 发布:仿手机淘宝产品详情 编辑:程序博客网 时间:2024/05/22 04:55
1、使用分离链接法避免collision
参考代码:
#include<iostream>#include<string>#include<vector>using namespace std;class node{public:string word;int count;node * next;};node * hashTable[700]={};void init(){int i;for(i=0;i<700;i++){hashTable[i] = new node;hashTable[i]->next=NULL;}}void insert(string s){const char *t =s.c_str();int i=0;int num=0;while(i<5 && (*t)!='\0'){num+=*t;t++;i++;}node *head = hashTable[num];while(head->next!=NULL){if(head->next->word == s){head->next->count++;return ;}elsehead=head->next;}if(head->next == NULL){node *tail = new node;tail->count=1;tail->word=s;tail->next=NULL;head->next=tail;}return ;}int find(string s){const char *t =s.c_str();int i=0;int num=0;while(i<5 && (*t)!='\0'){num+=*t;t++;i++;}node *head = hashTable[num];while(head->next!=NULL){if(head->next->word == s){return head->next->count;}elsehead=head->next;}if(head->next ==NULL)return 0;}int main(){init();int i;for(i=0;i<10;i++){string w;cin>>w;insert(w);}string w("hello");cout<<find(w);return 0;}
采用开放定址法-》线性探测:
#include<iostream>#include<string>#include<vector>using namespace std;class node{public:string word;int count;};node hashTable[700];void init(){int i;for(i=0;i<700;i++){hashTable[i].word = string("1");hashTable[i].count = 0;}}void insert(string s){const char *t =s.c_str();int i=0;int num=0;while(i<5 && (*t)!='\0'){num+=*t;t++;i++;}while(hashTable[num].word !=string("1")){if(hashTable[num].word == s){hashTable[num].count++;return;}else num++;}hashTable[num].word=s;hashTable[num].count++;return ;}int find(string s){const char *t =s.c_str();int i=0;int num=0;while(i<5 && (*t)!='\0'){num+=*t;t++;i++;}while(hashTable[num].word !=string("1")){if(hashTable[num].word == s){return hashTable[num].count;}else num++;}return 0;}int main(){init();int i;for(i=0;i<10;i++){string w;cin>>w;insert(w);}string w("hello");cout<<find(w);return 0;}
- hash表的代码
- 最简单易懂的hash表实现代码
- Hash代码
- Hash表及hash算法的分析
- Hash Collision攻击的代码(java)
- 获取文件的Hash值代码实现
- HASH表的研究
- hash表的应用
- hash表的实现
- HASH表的实现
- Hash表的数据结构
- FileMon中的Hash表算法代码
- Linux文件系统代码学习笔记2——Hash表&内存inode的创建与回收
- 打造最快的Hash表(暴雪的hash算法)
- 打造最快的Hash表
- 打造最快的Hash表
- 打造最快的Hash表
- 打造最快的Hash表
- android中利用webview调用网页上的js代码和注意事项
- Spring MVC配置学习
- 参考网址
- 最短路径 Dijkstra算法
- Struts2移动配置文件需要做的修改
- hash表的代码
- ImageMagick for java 使用Jmagick压缩高质量图片
- 超炫白HTC概念平板
- 硕士论文页眉页脚设置
- 怎样收缩SqlServer2005的日志文件
- 李彦宏在北大2008本科生毕业典礼上的发言(图)
- DataGridView中限制某列只能输入数字
- OpenGL 3D 超级宝典学习笔记
- String、Pattern、Matcher——java正则