以下哪个方案不能合理解决或缓解哈希表冲突( )。
链表分为单向/双向/循环链表,插入删除O(1),但查找O(n)。注意指针操作的顺序,防止断链。
链表操作要特别注意指针修改的顺序。例如在节点前插入时,先新节点→next = 当前→next,再当前→next = 新节点。顺序颠倒会导致断链。
【考点】哈希表|冲突解决|拉链法|再哈希|溢出法
🎯 考纲定位:本题锁定在 GESP 七级《数据结构与算法》模块的哈希表专项,命题人专门挖坑考"冲突解决"的四种标准方法,卡住的是死记硬背名词的学生——他们分不清"拉链""再哈希""溢出"和"覆盖"哪个是正解。
🧠 解题思维:看到"冲突解决"先想哈希表的经典方案:拉链法(每个桶挂链表)、再哈希(不同函数建新表)、溢出法(额外链表存冲突项)。选项 A 是拉链法,B 是溢出法,C 是再哈希法,三者都是标准解法;D 用新元素覆盖旧项,这根本不是解决冲突,只是暴力替换,冲突依然存在(新元素没地方存),直接排除。
🪤 陷阱拆解:选项 D 是最阴险的——它把"覆盖"包装成"解决",利用学生"覆盖=清空"的直觉误导;选项 B 容易误选,因为"额外链表"听起来像溢出法,但溢出法确实是标准方法,不能排除;选项 C 的"不同哈希函数"可能被误认为"换表",其实再哈希就是换函数重建表,也是正解。
🔄 反命题思维:命题人如果改成"哪种方法最省内存?",拉链法会占额外空间,溢出法同理,再哈希可能更省;若改成"哪种方法适合动态扩容?",拉链法会随负载增长而变慢。刷到哈希表题,先问"它考的是冲突解决还是扩容策略"。