考虑针对4位整数键的动态哈希方法:
- (A)有一个大小为4的主哈希表。
- (B)密钥的2个最低有效位用于索引主哈希表。
- (C)最初,主哈希表条目为空。
- (D)此后,当将更多密钥散列到其中以解决冲突时,与主哈希表条目相对应的所有密钥的集合被组织为按需增长的二叉树。
- (E)首先,第3个最低有效位用于将键分为左右子树。
- (F)为了解决更多冲突,基于第四最低有效位将二叉树的每个节点进一步细分为左子树和右子树。
- (G)仅在需要时才进行拆分,即仅在发生碰撞时进行。
考虑哈希表的以下状态。
以下哪个键插入序列会导致哈希表处于上述状态(假设键以十进制表示)?
(A) 5,9,4,13,10,7
(B) 9,5,10,6,7,1
(C) 10,9,6,7,5,13
(D) 9,5,13,6,10,14答案: (C)
说明:由于条目4(= 0100)不在最终哈希表中,因此选项(A)中给出的序列是不可能的。
选项(B)中给出的序列是不可能的,因为基于第三个LSB,条目1(= 0001)和9(= 1001)解决了0侧的冲突。
选项(C)中给出的序列是获得给定最终哈希表的正确序列。
选项(D)中给出的序列是不可能的,因为第三列中的条目6(= 0110),10(= 1010)和14(= 1110),最终哈希表中未给出3个序列。
这个问题的测验