-->
当前位置:首页 > 题库 > 正文内容

编程题:字符串关键字的散列映射

Luz3年前 (2022-10-28)题库561
给定一系列由大写英文字母组成的字符串关键字和素数$$P$$,用移位法定义的散列函数$$H(Key)$$将关键字$$Key$$中的最后3个字符映射为整数,每个字符占5位;再用除留余数法将整数映射到长度为$$P$$的散列表中。例如将字符串AZDEG插入长度为1009的散列表中,我们首先将26个大写英文字母顺序映射到整数0~25;再通过移位将其映射为$$3\times 32^2 + 4 \times 32 + 6 = 3206$$;然后根据表长得到$$3206 \% 1009 = 179$$,即是该字符串的散列映射位置。

发生冲突时请用平方探测法解决。

### 输入格式:

输入第一行首先给出两个正整数$$N$$($$\le 500$$)和$$P$$($$\ge 2N$$的最小素数),分别为待插入的关键字总数、以及散列表的长度。第二行给出$$N$$个字符串关键字,每个长度不超过8位,其间以空格分隔。

### 输出格式:

在一行内输出每个字符串关键字在散列表中的位置。数字间以空格分隔,但行末尾不得有多余空格。

### 输入样例1:
in
4 11
HELLO ANNK ZOE LOLI


### 输出样例1:
out
3 10 4 0


### 输入样例2:

6 11
LLO ANNA NNK ZOJ INNK AAA


### 输出样例2:

3 0 10 9 6 1






答案:若无答案欢迎评论

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。