博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
开放寻址法
阅读量:6309 次
发布时间:2019-06-22

本文共 2064 字,大约阅读时间需要 6 分钟。

  hot3.png

//开放寻址法//散列函数包括线性探测、二次探测、双重探测#include
using namespace std;//除法散列法int h1(int k,int m){        return k%m; }//乘法散列法int h2(int k,int m,float A){        float fnum=(float)k;        float re=((fnum*A)-(int)(fnum*A))*m;        return (int)re;}//全域散列法,p为质数int h3(int k,int p,int m){    int a,b;    a=11;    b=13;    return ((a*k+b)%p)%m;}//线性探查int LinerProbing(int k,int m,int i){    return (h1(k,m)+i)%m;}//二次探查int QuadraticProbing(int k,int m,int i){    int c1=17,c2=67;    return (h1(k,m)+c1*i+c2*i*i)%m;}//双重探查int DoublefunProbing(int k,int m,int i){    return (h3(k,17,m)+i*h1(k,m))%m;}//插入值为k的元素到具有m个槽的T中int Insert(int *T,int k,int m){    int i=1,j;    while(1)    {        //利用双重探查得出插入位置        j=DoublefunProbing(k,m,i);        if(i==m+1)        {            break;        }        //T[j]==-1表示该槽为空        if(T[j]==-1)        {            T[j]=k;            return j;        }        i++;    }    return -1;}//删除值为k的元素在具有m个槽的T中bool Delete(int *T,int k,int m){    int i=1,j;    while(1)    {        j=DoublefunProbing(k,m,i);        if(i==m+1)        {            return 0;        }        if(T[j]==-1)        {            return 0;        }        if(T[j]==k)        {            T[j]=-1;            return 1;        }        i++;    }}//搜索值为k的元素在具有m个槽的T中int Search(int *T,int k,int m){    int i=1,j;    while(1)    {        j=DoublefunProbing(k,m,i);        if(i==m+1)        {            return -1;        }        if(T[j]==-1)        {            return -1;        }        if(T[j]==k)        {            return j;        }        i++;    }}int main(){    int a[10]={4,8,2,6,41,21,53,496,3216,48};    int T[101]={0};    int i;    for(i=0;i<101;i++)    {        T[i]=-1;    }    for(i=0;i<10;i++)    {        Insert(T,a[i],100);    }    for(i=1;i<=100;i++)    {        if(T[i]!=-1)        {            cout<
<<" ";        }    }    cout<
<
<
<
<

Reference

[1].http://m.blog.csdn.net/blog/liuzhanchen1987/7799257#

转载于:https://my.oschina.net/lvyi/blog/327314

你可能感兴趣的文章
需要什么食物,其实取决于肠道微生物?
查看>>
一些通用的控制
查看>>
solr死锁问题升级版脚本
查看>>
UILabel的学习
查看>>
JAVA程序员面试技巧
查看>>
L2TP ××× 服务器搭建和使用
查看>>
电脑监控专家 管理原来如此轻松
查看>>
关于布局xml文件中view的id重复的问题
查看>>
[转载] 全本张广泰——第六回 大爷起歹心 白犬换广泰
查看>>
Java heap space 问题查找
查看>>
iperf使用
查看>>
openstack I版的搭建三--Nova
查看>>
子网划分
查看>>
BZOJ 2186 [Sdoi2008]沙拉公主的困惑
查看>>
Django之windows平台篇
查看>>
诸葛io接口调用学习
查看>>
设计模式(九)——代理模式
查看>>
make: *** No targets specified and no makefile found. Stop.错误
查看>>
使用emacs作为代码片段管理工具
查看>>
vim vi IMPROVED
查看>>