查找也要顺着探测链走

补全 find:从算出的槽位开始往后找,遇到空格才算没有。 查 23 号,补全后输出它在哪一格。

开始练习 →

表满了还往里塞会转不出来

开放寻址最危险的一点:表满了之后,"往后找空格"这个循环永远不会停。 补全 put,满了就返回 表已满。一张 4 格的表塞 5 个人,输出第 5 次的结果。

开始练习 →

哈希表的查找第一步永远是

不管用哪种冲突处理,查找的第一步永远是【0】。

开始练习 →

链地址法下怎么删

链地址法下删掉一条记录,做法是【0】。

开始练习 →

开放寻址下删除要留个什么

开放寻址下删掉一条,通常要在原地留一个【0】。

开始练习 →

删掉一个之后还剩几条

运行下面这段程序(链地址法,五个人): def new_table(cap): return [[] for _ in range(cap)] table = new_table(8) for key, name in [(17,

开始练习 →

增:写一个 put

补全 put(链地址法)。放完五个人之后,输出表里一共有几条。

开始练习 →

查:写一个 get

补全 get,查 23 号。 注意第 7 格里有两个人,不能拿到第一个就返回。

开始练习 →

删:写一个 delete

补全 delete:从那一格的列表里把这个键去掉。 删掉 15 号之后,输出第 7 格里还剩几个。

开始练习 →

三个操作串起来验一遍

把 put / get / delete 都写出来,然后验三条: 放完五个人,get(23) 是「北辰」 删掉 15 号之后,get(15) 是「没这个人」 删完之后 get(23) 还是「北辰」(同一格的另一个不能被误删) 三条全过输出

开始练习 →