We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 9e8b53d commit 78f800eCopy full SHA for 78f800e
README.md
@@ -26,11 +26,19 @@ LFU(least frequently used (LFU) page-replacement algorithm)。即最不经
26
27
#### [堆 (golang)](/go/base/heap.go)
28
29
-堆是一种带有顺序结构的完全二叉树,分为大根堆和小根堆,根据完全二叉和父子大小关系,利用数组结构比较容易实现堆结果。另外golang本身的堆实现(container/heap.go)则使用了sort接口,更加灵活。
+堆是一种带有顺序结构的完全二叉树,分为大根堆和小根堆,根据完全二叉和父子大小关系,利用数组结构比较容易实现堆结果。
30
+golang源码中也实现了一个小根堆(代码在container/heap/),采用接口化的设计,实用性大大提升,值得好好学习一番,主要亮点:
31
+1. 接口化设计,只要实现heap接口即可使用
32
+2. 复用sort接口实现,最大程度复用
33
+3. 采用循环代推递归实现调整
34
35
#### [链表 (golang)](/go/base/link_list.go)
36
-golang实现的单链表和双链表结构
37
+golang实现的单链表和双链表结构和源码分析。
38
+golang源码的双向链表实现(代码在container/list/)亮点:
39
+1. 双向链表为环形结构,前后指针调整方便
40
+2. 节点元素与链表分开两种数据结构
41
+
42
43
#### [线性表:数组与链表、队列与栈](/md/数组与链表,堆栈与队列.md)
44
0 commit comments