mirror of
https://github.com/krahets/hello-algo.git
synced 2026-04-24 02:21:30 +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:
@@ -103,7 +103,7 @@ enum _ArrayHashMap {
|
||||
map.print()
|
||||
|
||||
/* 查询操作 */
|
||||
// 向哈希表输入键 key ,得到值 value
|
||||
// 向哈希表中输入键 key ,得到值 value
|
||||
let name = map.get(key: 15937)!
|
||||
print("\n输入学号 15937 ,查询到姓名 \(name)")
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ enum HashMap {
|
||||
PrintUtil.printHashMap(map: map)
|
||||
|
||||
/* 查询操作 */
|
||||
// 向哈希表输入键 key ,得到值 value
|
||||
// 向哈希表中输入键 key ,得到值 value
|
||||
let name = map[15937]!
|
||||
print("\n输入学号 15937 ,查询到姓名 \(name)")
|
||||
|
||||
|
||||
@@ -37,13 +37,13 @@ class HashMapChaining {
|
||||
func get(key: Int) -> String? {
|
||||
let index = hashFunc(key: key)
|
||||
let bucket = buckets[index]
|
||||
// 遍历桶,若找到 key 则返回对应 val
|
||||
// 遍历桶,若找到 key ,则返回对应 val
|
||||
for pair in bucket {
|
||||
if pair.key == key {
|
||||
return pair.val
|
||||
}
|
||||
}
|
||||
// 若未找到 key 则返回 nil
|
||||
// 若未找到 key ,则返回 nil
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@ enum _HashMapChaining {
|
||||
map.print()
|
||||
|
||||
/* 查询操作 */
|
||||
// 向哈希表输入键 key ,得到值 value
|
||||
// 向哈希表中输入键 key ,得到值 value
|
||||
let name = map.get(key: 13276)
|
||||
print("\n输入学号 13276 ,查询到姓名 \(name!)")
|
||||
|
||||
|
||||
@@ -41,9 +41,9 @@ class HashMapOpenAddressing {
|
||||
var firstTombstone = -1
|
||||
// 线性探测,当遇到空桶时跳出
|
||||
while buckets[index] != nil {
|
||||
// 若遇到 key ,返回对应桶索引
|
||||
// 若遇到 key ,返回对应的桶索引
|
||||
if buckets[index]!.key == key {
|
||||
// 若之前遇到了删除标记,则将键值对移动至该索引
|
||||
// 若之前遇到了删除标记,则将键值对移动至该索引处
|
||||
if firstTombstone != -1 {
|
||||
buckets[firstTombstone] = buckets[index]
|
||||
buckets[index] = TOMBSTONE
|
||||
@@ -55,7 +55,7 @@ class HashMapOpenAddressing {
|
||||
if firstTombstone == -1 && buckets[index] == TOMBSTONE {
|
||||
firstTombstone = index
|
||||
}
|
||||
// 计算桶索引,越过尾部返回头部
|
||||
// 计算桶索引,越过尾部则返回头部
|
||||
index = (index + 1) % capacity
|
||||
}
|
||||
// 若 key 不存在,则返回添加点的索引
|
||||
@@ -151,7 +151,7 @@ enum _HashMapOpenAddressing {
|
||||
map.print()
|
||||
|
||||
/* 查询操作 */
|
||||
// 向哈希表输入键 key ,得到值 value
|
||||
// 向哈希表中输入键 key ,得到值 value
|
||||
let name = map.get(key: 13276)
|
||||
print("\n输入学号 13276 ,查询到姓名 \(name!)")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user