2023 数据结构 散列表平均查找长度 选择题
第 9 题

现有长度为 5,初始为空的散列表 HT,散列表函数 H(k) = (k+4) % 5 用线性探查再散列法解决冲突。若将关键字序列 2022,12,25 依次插入 HT 中,然后删除关键字 25,则 HT 中查找失败的平均查找长度( )。

散列表 平均查找长度

A. 1 B. 1.6 C. 1.8 D. 2.2

[tag_link]

正确答案:C

线性探测再散列法中删除一个关键字会导致后面的关键字无法通过线性探测找到正确的位置。当删除一个关键字时,为了保持散列表的连续性,通常会将后续的关键字向前移动填充空缺,这样后续的查找操作才能继续正确地找到它们。然而,如果删除的是一个位于中间位置的关键字,后面的关键字需要依次向前移动,这会导致删除操作的时间复杂度较高,因为需要移动大量的关键字。为了解决删除操作中的位置依赖性问题,可以使用删除标记来表示一个位置上的关键字已被删除。如下表所示,查找失败的平均查找长度为 (1+3+2+1+2)/5=1.8。本题答案选 C。

地址01234
Key20221225 (delete)
查找失败次数13212