查找时到了那一格还要比

补全 get_name:算出槽位之后,在那一格里挨个比键,找到就返回名字。查 15 号,补全后输出查到的名字。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

查一个根本不在表里的

同一个 get_name,找不到时要返回 没这个人,不能崩。查 99 号,输出结果。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

开放寻址怎么处理撞车

第 1 步:17、24、15 已经坐好 第 2 步:23 % 8 = 7:有人了 第 3 步:往后一格绕回 0:有人 第 4 步:再往后到 1:有人 第 5 步:到 2:空的,坐下 24 17 15 i 23 开放寻址的做法是【0】。

开始练习 →

线性探测的下一格怎么算

线性探测里,第 i 格的下一格是【0】。

开始练习 →

开放寻址删东西为什么麻烦(C++)

开放寻址下直接把格子清空,问题是【0】。

开始练习 →

北辰往后挪了几次

8 格的表,按 17、24、15、23 的顺序用线性探测放人。运行下面这段程序,它数的是「往后挪了几次」: #include <iostream> #include <string> #include <uti

开始练习 →

北辰最后坐在哪一格

同样的四个人、同样的顺序。运行下面这段程序: #include <iostream> #include <string> #include <utility> #include <vector>

开始练习 →

实现线性探测的插入

补全 put_key:算出槽位,那一格有人就往后绕着找空格。按 17、24、15、23 的顺序放完之后,输出 23 号最后坐在哪一格。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

查找也要顺着探测链走

补全 find_key:从算出的槽位开始往后找,遇到空格才算没有。查 23 号,补全后输出它在哪一格。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

表满了还往里塞会转不停

开放寻址最危险的一点:表满了之后,「往后找空格」这个循环永远不会停。补全 put_key,满了就返回 表已满,放好返回 已放下。一张 4 格的表塞 5 个人,输出第 5 次的结果。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →