永发信息网

散列表的建立(一定要用c++哦)

答案:1  悬赏:40  手机版
解决时间 2021-05-10 23:46

题目:散列表的建立

1.实验目的

(1)掌握散列查找的基本思想;

(2)掌握闭散列表的构造方法;

(3)掌握线性探测处理冲突的方法;

(4)掌握散列技术的查找性能。

2.实验内容

(1)对于给定的一组整数和散列函数,采用线性探测法处理冲突构造散列表;

(2)设计查找算法,验证查找性能。

3.实现提示

假设散列表长为m,散列函数为除留余数法,即H(key)=key%p,m和p在主函数中由用户从键盘输入,待散列的数据也由用户从键盘输入,算法如下:

闭散列表构造算法

int CreatHash(int ht[ ], int m)

{

for (i=0; i<m; i++) //散列表初始化

ht[ i ]=0;

cin>>k;

while (k! =’#’) // #作为结束标志

{

j =k % p;

if (ht[ j ] = = 0) ht[ j ] =k; //没有发生冲突,直接存入

else{

i = (j+1) % m;

while (ht[ i ]!=0 && i!=j)

{

if (ht[ i ] = = 0){

ht[ i ] =k; //发生冲突,向后探测若干次后存入

break;

}

else i= (i+1) % m; //向后探测一个位置

}

if (i = = j)throw“溢出”;

}

cin>>k;

}

}

假设在已建立的散列表中进行静态查找,在查找过程中设置计数器count统计元素的比较次数,查找算法如下:

闭散列表的查找算法 HashSearch

int HashSearch ( int ht[ ], int m, int k)

{

j =k %p; count =0; i =j;

while (ht[ i ]!=0)

{

if ( ++count && ht[ i ] = = k) { //发生冲突,比较若干次查找成功

cout<<“查找成功,比较次数为:”<<count<<endl;

return i;

}

i= (i+1) % m; //向后探测一个位置

if (i = = j)break;

}

cout<<“查找不成功,比较次数为:”<<count<<endl;

}

最佳答案
你好哦。
有幸看到你的问题。
但是又很遗憾到现在还没有人回答你的问题。也可能你现在已经在别的地方找到了答案,那就得恭喜你啦。
可能是你问的问题有些专业了,没人会。或者别人没有遇到或者接触过你的问题,所以帮不了你。建议你去问题的相关论坛去求助,那里的人通常比较多,也比较热心,可能能快点帮你解决问题。
祝你好运~!
希望我的回答也能够帮到你!
谢谢
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
第二次结婚要重新买戒指吗?
我有一个56级的百花智力只有467我该怎样提高
手机家园社区用电脑怎么玩?
怎样确定自己喜欢他或她
对死人家属祝福语大全,佛经里有那句是对逝者
宫心计29有了没有啊?
我的天时达T660有自带的QQ2007,但我想要QQ200
唱脸谱是谁作的词
上火能吃樱桃吗,樱桃吃多了会上火吗
我的电脑有两个漏洞,修复不了(图)
为什么有的时候开不了农场?
和山水垂钓有关的诗句,珠穆朗玛峰多高
最接有没有搞笑的电影上映
福州在那买 发烧变频器 和喇叭
怎样可以弄没白头发
推荐资讯
上海光新路乐购旁边有高中麽?
稀饭倒在了头上!打一明星名字?
求落落的经典名言
关于请你相信我的句子,关于相信你感慨的句子
我初三了英语近乎不会,怎么办?从头学是不可
高阳县有没有个人无抵押贷款
怎么区分真假烟
是手机的外形重要还是功能重要
冰之沧月月经典语录,b站的月歌是什么情况?好
魔兽,圣骑能拿的长柄武器有什么好的,我三十
能推荐些淘宝网上信誉高的店名吗?
1988年是什么属相
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?