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
本课练习
先独立作答再提交;编程题会在隔离沙箱中真实编译、运行并对拍。
本课练习正在补齐,暂不应标记为完成。