跳到正文

7.5 散列表的基本概念、散列函数的构造·综合题讲评

40 分钟

7.5 综合题:实现可删除开放定址表

槽状态分EMPTY、USED、DELETED。查找遇USED且键相等成功,遇DELETED继续,遇EMPTY失败。插入记录首个墓碑,但继续查重;最终优先复用墓碑,否则用空槽。

手工推演

表中3:10,4:墓碑,5:24。插17从3开始,见10、记录4墓碑、继续见24、到6空,确认无重复后放4。

结构与代码

循环最多m步;若无空槽但有墓碑仍可插。维护used和deleted计数,在装填或墓碑比例过高时扩容重建。

正确性

继续查重防止同键在探测链后部已存在;首墓碑复用不破坏任何现存键路径。

错解反馈

遇墓碑立即插导致重复键;遇墓碑查找失败;满表无限循环。

迁移训练

上述状态插17后各槽如何?答案3:10,4:17,5:24;查24仍经3,4,5命中。

小纸条

上述状态插17后各槽如何?

登录 后可看答案

Practice

本课练习

0

先独立作答再提交;编程题会在隔离沙箱中真实编译、运行并对拍。

本课练习正在补齐,暂不应标记为完成。