Update the book based on the revised second edition (#1014)

* Revised the book

* Update the book with the second revised edition

* Revise base on the manuscript of the first edition
This commit is contained in:
Yudong Jin
2023-12-28 18:06:09 +08:00
committed by GitHub
parent 19dde675df
commit f68bbb0d59
261 changed files with 643 additions and 647 deletions

View File

@ -114,7 +114,7 @@ public class array_hash_map {
map.print();
/* 查询操作 */
// 向哈希表输入键 key ,得到值 value
// 向哈希表输入键 key ,得到值 value
String name = map.get(15937);
System.out.println("\n输入学号 15937 ,查询到姓名 " + name);

View File

@ -25,7 +25,7 @@ public class hash_map {
PrintUtil.printHashMap(map);
/* 查询操作 */
// 向哈希表输入键 key ,得到值 value
// 向哈希表输入键 key ,得到值 value
String name = map.get(15937);
System.out.println("\n输入学号 15937 ,查询到姓名 " + name);

View File

@ -43,13 +43,13 @@ class HashMapChaining {
String get(int key) {
int index = hashFunc(key);
List<Pair> bucket = buckets.get(index);
// 遍历桶,若找到 key 则返回对应 val
// 遍历桶,若找到 key 则返回对应 val
for (Pair pair : bucket) {
if (pair.key == key) {
return pair.val;
}
}
// 若未找到 key 则返回 null
// 若未找到 key 则返回 null
return null;
}
@ -135,7 +135,7 @@ public class hash_map_chaining {
map.print();
/* 查询操作 */
// 向哈希表输入键 key ,得到值 value
// 向哈希表输入键 key ,得到值 value
String name = map.get(13276);
System.out.println("\n输入学号 13276 ,查询到姓名 " + name);

View File

@ -37,9 +37,9 @@ class HashMapOpenAddressing {
int firstTombstone = -1;
// 线性探测,当遇到空桶时跳出
while (buckets[index] != null) {
// 若遇到 key ,返回对应桶索引
// 若遇到 key ,返回对应桶索引
if (buckets[index].key == key) {
// 若之前遇到了删除标记,则将键值对移动至该索引
// 若之前遇到了删除标记,则将键值对移动至该索引
if (firstTombstone != -1) {
buckets[firstTombstone] = buckets[index];
buckets[index] = TOMBSTONE;
@ -51,7 +51,7 @@ class HashMapOpenAddressing {
if (firstTombstone == -1 && buckets[index] == TOMBSTONE) {
firstTombstone = index;
}
// 计算桶索引,越过尾部返回头部
// 计算桶索引,越过尾部返回头部
index = (index + 1) % capacity;
}
// 若 key 不存在,则返回添加点的索引
@ -145,7 +145,7 @@ public class hash_map_open_addressing {
hashmap.print();
// 查询操作
// 向哈希表输入键 key ,得到值 val
// 向哈希表输入键 key ,得到值 val
String name = hashmap.get(13276);
System.out.println("\n输入学号 13276 ,查询到姓名 " + name);