Skip to content

Commit 78f800e

Browse files
committed
readme: update
Change-Id: I13f73c651f63e0fa7a5f18b80d609bd1dc1bf82a
1 parent 9e8b53d commit 78f800e

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

README.md

+10-2
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,19 @@ LFU(least frequently used (LFU) page-replacement algorithm)。即最不经
2626

2727
#### [堆 (golang)](/go/base/heap.go)
2828

29-
堆是一种带有顺序结构的完全二叉树,分为大根堆和小根堆,根据完全二叉和父子大小关系,利用数组结构比较容易实现堆结果。另外golang本身的堆实现(container/heap.go)则使用了sort接口,更加灵活。
29+
堆是一种带有顺序结构的完全二叉树,分为大根堆和小根堆,根据完全二叉和父子大小关系,利用数组结构比较容易实现堆结果。
30+
golang源码中也实现了一个小根堆(代码在container/heap/),采用接口化的设计,实用性大大提升,值得好好学习一番,主要亮点:
31+
1. 接口化设计,只要实现heap接口即可使用
32+
2. 复用sort接口实现,最大程度复用
33+
3. 采用循环代推递归实现调整
3034

3135
#### [链表 (golang)](/go/base/link_list.go)
3236

33-
golang实现的单链表和双链表结构
37+
golang实现的单链表和双链表结构和源码分析。
38+
golang源码的双向链表实现(代码在container/list/)亮点:
39+
1. 双向链表为环形结构,前后指针调整方便
40+
2. 节点元素与链表分开两种数据结构
41+
3442

3543
#### [线性表:数组与链表、队列与栈](/md/数组与链表,堆栈与队列.md)
3644

0 commit comments

Comments
 (0)