Skip to content

2024年 408 数据结构 第 42 题

数据结构2024年综合题12分

题目

将关键字 20, 3, 11, 18, 9, 14, 7 依次存储到长度为 11 的散列表 HT 中,散列函数为 H(key) = (key × 3) mod 11。

H₀ 为初始散列地址,H₁、H₂、H₃、…、H_k 分别为第 1 次冲突、第 2 次冲突、第 3 次冲突、…、第 k 次冲突时探测的地址,H_k = (H₀ + k²) mod 11。

请回答下列问题:

(1) 画出所构造的 HT,并计算 HT 的装填因子。

(2) 给出在 HT 中查找关键字 14 的关键字比较序列。

(3) 在 HT 中查找关键字 8,确认查找失败时的散列地址是多少?

解析

(1) 构造 HT 与装填因子

答案:HT 如下,装填因子

地址012345678910
关键字11147209318

推导——按插入顺序逐个算 ,冲突时按 继续探查(注意是单向,不是 ):

#key探查过程落入
12055
2399
31100
4181010
595HT[5]=20 冲突 → 6
6149HT[9]=3 冲突 → =18 冲突 → 2
7710HT[10]=18 冲突 → =11 冲突 → 3

(2) 查找 14 的关键字比较序列

答案:3, 18, 14(共 3 次比较)。

,从地址 9 开始按二次探查比对:

步骤地址HT 内容结果
933 ≠ 14,继续
101818 ≠ 14,继续
214命中

编者注(生僻术语):「关键字比较序列」写的是实际与目标做比较的 HT 内容(3、18、14),不是探查地址(9、10、2)——这是常见失分点。

(3) 查找 8 失败时的散列地址

答案:7。

,开放定址法探查到空槽即判定失败,对应那个空槽的地址就是"失败地址":

步骤地址HT 内容结果
21414 ≠ 8,继续
377 ≠ 8,继续
699 ≠ 8,继续
01111 ≠ 8,继续
7失败

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数