From ad3f27856ffdd315815e3cca6d36b979e09d223a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=89=E6=96=87=E6=9D=B0?= <510495266@qq.com> Date: Wed, 8 Sep 2021 00:27:33 +0800 Subject: [PATCH] add link --- 2 List/QPS Counter.md | 5 ++++- 2 List/README.md | 7 ++++++- 2 List/Queue.md => 2 Queue/README.md | 0 {2 List => 2 Queue}/ZipList.md | 0 {2 List => 2 Queue}/skip-list.md | 0 3 Hash Table/README.md | 8 ++++++-- README.md | 2 +- 7 files changed, 17 insertions(+), 5 deletions(-) rename 2 List/Queue.md => 2 Queue/README.md (100%) rename {2 List => 2 Queue}/ZipList.md (100%) rename {2 List => 2 Queue}/skip-list.md (100%) diff --git a/2 List/QPS Counter.md b/2 List/QPS Counter.md index 2749960..3411dea 100644 --- a/2 List/QPS Counter.md +++ b/2 List/QPS Counter.md @@ -1,4 +1,7 @@ # QPS Counter 统计各接口QPS计数 -使用一个双向循环链表结构 \ No newline at end of file +使用一个双向循环链表结构 + + + diff --git a/2 List/README.md b/2 List/README.md index 680e6c5..458996f 100644 --- a/2 List/README.md +++ b/2 List/README.md @@ -6,7 +6,9 @@ ## 链表 -这个就不介绍了。重点说下双向链表。 +### 应用场景 + +* [redis slowlog](Redis%20slowlog.md) ### 扩缩容 @@ -18,6 +20,8 @@ java 中扩容,每次扩容新增原先容量的 1/2 int newCapacity = oldCapacity + (oldCapacity >> 1); ``` +这个就不介绍了。重点说下双向链表。 + ## 双向链表 @@ -38,6 +42,7 @@ typedef struct Entry{ 最后一个节点指针指向头节点的链表 +[QPS 计数器实现](QPS%20Counter.md) ## 双向循环链表 diff --git a/2 List/Queue.md b/2 Queue/README.md similarity index 100% rename from 2 List/Queue.md rename to 2 Queue/README.md diff --git a/2 List/ZipList.md b/2 Queue/ZipList.md similarity index 100% rename from 2 List/ZipList.md rename to 2 Queue/ZipList.md diff --git a/2 List/skip-list.md b/2 Queue/skip-list.md similarity index 100% rename from 2 List/skip-list.md rename to 2 Queue/skip-list.md diff --git a/3 Hash Table/README.md b/3 Hash Table/README.md index 7738d01..aecec75 100644 --- a/3 Hash Table/README.md +++ b/3 Hash Table/README.md @@ -6,7 +6,11 @@ * 散列函数设计 * 冲突处理 * hashmap数据结构 -* Java 中HashMap实现 + +[Golang 中HashMap实现](HashMap%20in%20Golang.md) +[Java 中HashMap实现](HashMap%20in%20Java.md) +[Java 中LinkedHashMap实现](LinkedHashMap.md) +[Java 中TreeMap实现](TreeMap%20in%20Java.md) 散列表使用某种算法操作(散列函数)将键转化为数组的索引来访问数组中的数据,这样可以通过Key-value的方式来访问数据,达到常数级别的存取效率。现在的nosql数据库都是采用key-value的方式来访问存储数据。 @@ -29,7 +33,7 @@ 散列函数就是将键转化为数组索引的过程。且这个函数应该易于计算且能够均与分布所有的键。 -散列函数最常用的方法是`除留余数法`。这时候被除数应该选用`素数`,这样才能保证键值的均匀散步。 +散列函数最常用的方法是`除留余数法`。这时候被除数应该选用`素数`,这样才能保证键值的均匀散布。 散列函数和键的类型有关,每种数据类型都需要相应的散列函数;比如键的类型是整数,那我们可以直接使用`除留余数法`;这里特别说明下,大多数情况下,键的类型都是字符串,这个时候我们任然可以使用`除留余数法`,将字符串当做一个特别大的整数。 diff --git a/README.md b/README.md index 2b492ab..c8d94dc 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ * 链表 * 双向链表 -### [队列](2%20List/Queue.md) +### [队列](2%20Queue/README.md) * 队列 * 堆栈