![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
散列查找
GZLUOLISHI
这个作者很懒,什么都没留下…
展开
-
平均查找长度之线性再散列 (10 分)
对于指定长度为N的整数数组,存储于指定长度为M的散列表中,使用指定的散列函数(使用简单的模素数P运算),若使用线性再散列(这里指的是:若冲突找下一个空位置)处理冲突,编程计算查找成功时平均查找长度和查找失败时的平均查找长度。输入样例:第一行三个整数,表示待存储的元素个数N,拟存储的散列表长度M和散列函数模除的素数P。第二行是N个以空格分隔的整数。9 13 1147 7 29 11 9 84 54 20 30输出样例:分别在两行中输出查找成功时平均查找长度和查找失败时的平均查找长度。原创 2022-02-18 17:48:45 · 1061 阅读 · 0 评论 -
散列表查找 (15 分)
设散列表a[18],散列函数是hask(k)=k%17,用开放地址法解决冲突hi=(h0+di)%m。冲突时采用平方探测法,使用增量序列di=i* i。计算输入序列(值>=0)对应的散列地址并进行查找,如果有此元素,则输出散列地址,如果无此元素,则输出not found。并输出查找次数(输入个数不会超过15个)输入格式:第一行为输入个数;第二行为对应的输入值,用空格隔开;第三行为需查找的元素,第1个为查找元素个数,后面为查找元素输出格式:第一行输出输入序列的散列地址,以一个空格原创 2022-02-17 20:42:31 · 3034 阅读 · 2 评论 -
分离链接法的删除操作函数 (20 分)
试实现分离链接法的删除操作函数。函数接口定义:bool Delete( HashTable H, ElementType Key );其中HashTable是分离链接散列表,定义如下:typedef struct LNode *PtrToLNode;struct LNode { ElementType Data; PtrToLNode Next;};typedef PtrToLNode Position;typedef PtrToLNode List;typ原创 2022-02-17 17:46:39 · 243 阅读 · 0 评论 -
线性探测法的查找函数 (20 分)
试实现线性探测法的查找函数。函数接口定义:Position Find( HashTable H, ElementType Key );其中HashTable是开放地址散列表,定义如下:#define MAXTABLESIZE 100000 /* 允许开辟的最大散列表长度 */typedef int ElementType; /* 关键词类型用整型 */typedef int Index; /* 散列地址类型 */typedef Index Posit原创 2022-02-17 12:02:37 · 318 阅读 · 0 评论 -
逆散列问题 (30 分)
给定长度为N的散列表,处理整数最常用的散列映射是H(x)=x%N。如果我们决定用线性探测解决冲突问题,则给定一个顺序输入的整数序列后,我们可以很容易得到这些整数在散列表中的分布。例如我们将 1、2、3 顺序插入长度为 3 的散列表HT[]后,将得到HT[0]=3,HT[1]=1,HT[2]=2的结果。但是现在要求解决的是“逆散列问题”,即给定整数在散列表中的分布,问这些整数是按什么顺序插入的?输入格式:输入的第一行是正整数 N(≤1000),为散列表的长度。第二行给出了 N 个整数,其间用...原创 2022-02-17 10:24:32 · 383 阅读 · 0 评论 -
整型关键字的散列映射 (25 分)
给定一系列整型关键字和素数P,用除留余数法定义的散列函数H(Key)=Key将关键字映射到长度为P的散列表中。用线性探测法解决冲突。输入格式:输入第一行首先给出两个正整数N(≤1000)和P(≥N的最小素数),分别为待插入的关键字总数、以及散列表的长度。第二行给出N个整型关键字。数字间以空格分隔。输出格式:在一行内输出每个整型关键字在散列表中的位置。数字间以空格分隔,但行末尾不得有多余空格。输入样例:4 524 15 61 88输出样例:4 0 1 3#defi原创 2022-02-16 19:42:34 · 262 阅读 · 0 评论 -
构造散列表 (20 分)
设散列表a[18],散列函数是hask(k)=k%17,用开放地址法解决冲突hi=(h0+di)%m。冲突时,使用增量序列di=5i。计算输入序列(值>=0)对应的散列地址值。(输入个数不会超过15个)输入格式:第一行为输入个数;第二行为对应的输入值,用空格隔开。输出格式:每行对应一个值及其散列地址,中间用空格隔开(即pos前后均有一个空格)输入样例:5141 73 95 112 56输出样例:141 pos: 573 pos: 1095 pos: 15原创 2022-02-16 19:09:37 · 2640 阅读 · 0 评论