mirror of
https://github.com/krahets/hello-algo.git
synced 2026-04-01 17:53:18 +08:00
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:
@@ -102,7 +102,7 @@ console.info('\n添加完成后,哈希表为\nKey -> Value');
|
||||
map.print();
|
||||
|
||||
/* 查询操作 */
|
||||
// 向哈希表输入键 key ,得到值 value
|
||||
// 向哈希表中输入键 key ,得到值 value
|
||||
let name = map.get(15937);
|
||||
console.info('\n输入学号 15937 ,查询到姓名 ' + name);
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ console.info('\n添加完成后,哈希表为\nKey -> Value');
|
||||
console.info(map);
|
||||
|
||||
/* 查询操作 */
|
||||
// 向哈希表输入键 key ,得到值 value
|
||||
// 向哈希表中输入键 key ,得到值 value
|
||||
let name = map.get(15937);
|
||||
console.info('\n输入学号 15937 ,查询到姓名 ' + name);
|
||||
|
||||
|
||||
@@ -43,13 +43,13 @@ class HashMapChaining {
|
||||
get(key) {
|
||||
const index = this.#hashFunc(key);
|
||||
const bucket = this.#buckets[index];
|
||||
// 遍历桶,若找到 key 则返回对应 val
|
||||
// 遍历桶,若找到 key ,则返回对应 val
|
||||
for (const pair of bucket) {
|
||||
if (pair.key === key) {
|
||||
return pair.val;
|
||||
}
|
||||
}
|
||||
// 若未找到 key 则返回 null
|
||||
// 若未找到 key ,则返回 null
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -131,7 +131,7 @@ console.log('\n添加完成后,哈希表为\nKey -> Value');
|
||||
map.print();
|
||||
|
||||
/* 查询操作 */
|
||||
// 向哈希表输入键 key ,得到值 value
|
||||
// 向哈希表中输入键 key ,得到值 value
|
||||
const name = map.get(13276);
|
||||
console.log('\n输入学号 13276 ,查询到姓名 ' + name);
|
||||
|
||||
|
||||
@@ -47,9 +47,9 @@ class HashMapOpenAddressing {
|
||||
let firstTombstone = -1;
|
||||
// 线性探测,当遇到空桶时跳出
|
||||
while (this.#buckets[index] !== null) {
|
||||
// 若遇到 key ,返回对应桶索引
|
||||
// 若遇到 key ,返回对应的桶索引
|
||||
if (this.#buckets[index].key === key) {
|
||||
// 若之前遇到了删除标记,则将键值对移动至该索引
|
||||
// 若之前遇到了删除标记,则将键值对移动至该索引处
|
||||
if (firstTombstone !== -1) {
|
||||
this.#buckets[firstTombstone] = this.#buckets[index];
|
||||
this.#buckets[index] = this.#TOMBSTONE;
|
||||
@@ -64,7 +64,7 @@ class HashMapOpenAddressing {
|
||||
) {
|
||||
firstTombstone = index;
|
||||
}
|
||||
// 计算桶索引,越过尾部返回头部
|
||||
// 计算桶索引,越过尾部则返回头部
|
||||
index = (index + 1) % this.#capacity;
|
||||
}
|
||||
// 若 key 不存在,则返回添加点的索引
|
||||
@@ -166,7 +166,7 @@ console.log('\n添加完成后,哈希表为\nKey -> Value');
|
||||
hashmap.print();
|
||||
|
||||
// 查询操作
|
||||
// 向哈希表输入键 key ,得到值 val
|
||||
// 向哈希表中输入键 key ,得到值 val
|
||||
const name = hashmap.get(13276);
|
||||
console.log('\n输入学号 13276 ,查询到姓名 ' + name);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user